问题描述:需要更新的数据($value)有2000多条,循环赋值.总是循环到1400条左右就自己停了不再继续,找了很久没找到原因,请坛里大神们帮帮忙!
ps:已经更新的前1400条左右的数据更新正常,sql语句也是OK的.
$dbh->beginTransaction();
$i=0;
while($value = $query->fetch(PDO::FETCH_ASSOC)){
$value = eval('return '.iconv('UTF-8','gbk',var_export($value,true)).';');
$sql = 'update v9_cars set Car_Type = (select id from clcp_cars_type where type_name = "'.$value['a1'].'" limit 1) , car_pp = (select id from clcp_cars_pp where pp_name = "'.$value['a2'].'" limit 1) , car_qy = (select id from clcp_cars_qy where company_name = "'.$value['a2'].'" limit 1), title=Car_xh ,keywords=Car_xh '.($value['a3']?',chassis_pp=(select chassis_pp from v9_chassis as a left join v9_chassis_data as b on a.id=b.id where b.DPID = "'.$value['a3'].'" limit 1),chassis_qy=(select chassis_qy from v9_chassis as a left join v9_chassis_data as b on a.id=b.id where b.DPID = "'.$value['a3'].'" limit 1)':'').' where Car_xh = "'.$value['a4'].'"';
$dbh->exec($sql);
if($i>=1000 && $i%1000==0){
$dbh->commit();
}
echo $i.',';
$i++;
//break;
}
$dbh->commit();
ps:已经更新的前1400条左右的数据更新正常,sql语句也是OK的.
$dbh->beginTransaction();
$i=0;
while($value = $query->fetch(PDO::FETCH_ASSOC)){
$value = eval('return '.iconv('UTF-8','gbk',var_export($value,true)).';');
$sql = 'update v9_cars set Car_Type = (select id from clcp_cars_type where type_name = "'.$value['a1'].'" limit 1) , car_pp = (select id from clcp_cars_pp where pp_name = "'.$value['a2'].'" limit 1) , car_qy = (select id from clcp_cars_qy where company_name = "'.$value['a2'].'" limit 1), title=Car_xh ,keywords=Car_xh '.($value['a3']?',chassis_pp=(select chassis_pp from v9_chassis as a left join v9_chassis_data as b on a.id=b.id where b.DPID = "'.$value['a3'].'" limit 1),chassis_qy=(select chassis_qy from v9_chassis as a left join v9_chassis_data as b on a.id=b.id where b.DPID = "'.$value['a3'].'" limit 1)':'').' where Car_xh = "'.$value['a4'].'"';
$dbh->exec($sql);
if($i>=1000 && $i%1000==0){
$dbh->commit();
}
echo $i.',';
$i++;
//break;
}
$dbh->commit();
echo $sql
$dbh->exec($sql);
$sql = 'update v9_cars set Car_Type = 1 , car_pp = 2 , car_qy = 3, title=Car_xh ,keywords=Car_xh '.($value['a3']?',chassis_pp=4,chassis_qy=5':'').' where Car_xh = "'.$value['a4'].'"';这种简单的sql语句也会在循环1500条左右时停下来了.没报错.什么问题?