0

我正在从制表符分隔的.txt文件中更新我的数据库中的 8000 条记录。我的代码只更新前 5506 条记录,并且在它终止后没有任何错误。下次我刷新页面时,它会更新 5500 条记录。我没有对代码进行任何更改。我在哪里失踪?我的代码是:

$result = mysqli_query($con,"SELECT id FROM `TABLE 1` ");
    for($i=1;$i<=$rows;$i++)
    {
        $flag=0;
       //$result = mysqli_query($con,"SELECT id FROM `TABLE 1` ");
    try
    {
       while($row = mysqli_fetch_array($result))
       {

         //echo $cols[$i][0];

            $v=strval($cols[$i][0]);
            if(strcmp($row['id'],$v)==0)//id exists in database=> update
            {
                echo "update";
                 echo "<br>".$row['id']."  ".$cols[$i][0];
                //echo "<br>".$row['price']."  ".$cols[$i][4];
                //echo"<br> ".$cols[$i][4];

                $uq="UPDATE `TABLE 1` SET `condition`='".$cols[$i][3]."',`price`='".$cols[$i][4]."',`availability`='".$cols[$i][5]."',`link`='".$cols[$i][6]."',`image_link`='".$cols[$i][7]."',`Gender`='".$cols[$i][11]."',`size`='".$cols[$i][13]."',`Color`='".$cols[$i][14]."',`material`='".$cols[$i][15]."',`shipping_weight`='".$cols[$i][16]."' where `id`='$v'";
                //mysqli_query($con,"UPDATE `TABLE 1` SET `price`='".$cols[$i][4]."'  WHERE `id`='$v'");
                //echo $cols[$i][0];
                $d=mysqli_query($con,$uq);
                if($d)
                {
                   echo"updated sucessfully";
                }
                else
                {
                    echo"not inserted";
                   die('Error:'. mysqli_error($con));
                }


            $flag=1;
            break;
           } 

        }     

    }
        catch(Exception $e)
            {
               echo $e->getMessage();
               $flag=1;
            }
4

2 回答 2

1

您可以尝试通过将此代码添加到脚本顶部来启用 display_errors:

ini_set('display_errors', 1);
error_reporting(E_ALL);

如果这没有帮助,您可以检查您的 php 错误日志。

于 2013-11-12T12:44:33.423 回答
0

重置您的最大执行时间,因为您的程序似乎执行了很长时间,并检查您的代码中是否存在无限循环,如果是,则将其删除。

ini_set('max_execution_time', 600); //600 seconds = 10 minutes
于 2013-11-12T12:52:32.440 回答