我正在使用制表符分隔的.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;
}
答案 0 :(得分:1)
您可以尝试通过将此代码添加到脚本顶部来启用display_errors:
ini_set('display_errors', 1);
error_reporting(E_ALL);
如果这没有帮助,您可以检查您的php错误日志。
答案 1 :(得分:0)
重置最长执行时间,因为程序似乎执行了很长时间,并检查代码中是否存在任何无限循环,如果不是删除它。
ini_set('max_execution_time', 600); //600 seconds = 10 minutes