$conn=db_connect();//show exits recorder
$find = "select * from d_addonarticle order by aid";
$result = $conn->query($find);
$num_results = $result->num_rows;for($i=0;$i<$num_results; $i++){
$row = $result->fetch_array();
$aid = $row['aid'];
$body = $row['body'];
$userip = $row['userip'];
$randimg = "/uploads/allimg/abc".rand(1,4).".jpg";
$afterbody = preg_replace('/\/uploads\/allimg\/.*?\.jpg/',$randimg,$body);
$updateafter = "update d_addonarticle SET body = '$afterbody' where aid='$aid'";
$result3 = $conn->query($updateafter);
}
一共2000多条记录,只能更新前68条记录,后面更新不到,请高手帮忙看看

解决方案 »

  1.   

    echo $num_results;这个显示是多少?
    还有update d_addonarticle SET body = '$afterbody' where aid='$aid'";最好能循环打出这个语句看看到68条以后是否依然正常显示。如果获取不到$aid了也许也是更新不到的一个原因。
      

  2.   


    显示2000多,已经逐条打印了,输出到文本文件了。经过排查,现在是用正则可以处理文件,但处理后的有些变量$body 存的大量html、css、js混合的编码,无法update回去
      

  3.   

    试一下在更新语句后面加个sleep...