我的 MySQL 的 PHP 重复数据删除器有什么问题


What is wrong with my PHP deduper for MySQL?

我正在尝试删除其中一个MySQL表中的重复条目,但不断收到相同的错误。

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in C:'Inetpub'vhosts'myexamplewebsite.com'httpdocs'duplicate'index.php on line 25

请问我做错了什么?

<?php
$dedupe=mysqli_connect("localhost","user","pass","database");
$result = mysqli_query($dedupe,"SELECT * FROM `videos` WHERE `dupe`=0 order by RAND() ");
while($row = mysqli_fetch_array($result)) 
    {
        $vod_index = $row['index'];
        $vod_video_name = $row['video_name'];
        $vod_vidstart = $row['vidstart'];
        $vod_providerid = $row['providerid'];
        $vod_dupe = $row['dupe'];

    $result2 = mysqli_query($dedupe,"SELECT * FROM `videos` WHERE `index` != '$vod_index';
    AND `dupe`='0'
    AND `video_name` = '$vod_video_name'
    AND `vidstart` = '$vod_vidstart'
    AND `providerid` = '$vod_providerid'
    AND `index` != '$vod_index'
     ");

     while($row2 = mysqli_fetch_array($result2)) 
    {
        $vod_index2 = $row2['index'];
        $vod_video_name2 = $row2['video_name'];
        $vod_vidstart2 = $row2['vidstart'];
        $vod_providerid2 = $row2['providerid'];
        $vod_dupe2 = $row2['dupe'];

        mysqli_query($dedupe,"UPDATE `videos` set `dupe`=1
WHERE `index`='$vod_index2' "); 
 {
  echo("Error description: " . mysqli_error($recordcon));
  }
  mysqli_query($dedupe,"INSERT INTO deduped (index,videos_index)
VALUES ('NULL','$vod_index2')");
    }
    }
    mysqli_close($dedupe); 
?>

请注意:index是表的主键。

如果可能的话,我宁愿修复此方法而不是启动另一个方法,因为我将其写为一个更简单的方法,而不是我发现其他人编写的示例。

任何帮助,不胜感激。

您的查询中有一个意外的分号,请尝试如下:

$result2 = mysqli_query($dedupe,"SELECT * FROM `videos` WHERE `index` != '$vod_index'
    AND `dupe`='0'
    AND `video_name` = '$vod_video_name'
    AND `vidstart` = '$vod_vidstart'
    AND `providerid` = '$vod_providerid'
    AND `index` != '$vod_index'
     ");
相关文章: