当表 member中数据量不大时,可以一次性执行:
$q="select * from member'";$r=$obj_db->simplequery($q);while($a=$obj_db->fetchrow($r,DB_FETCHMODE_ASSOC)){ $id=$a[id]; $mccd=$a[cca]+$a[ccb]; $query="insert into mingxi (mid,mccd,mtime) values ('$id','$mccd','$time')"; $obj_db->simplequery($query);}
但当member中数据量达到百万条时,说会出现执行超时的错误:
Fatal error: Maximum execution time of 30 seconds exceeded in D:
那么怎么现实分批处理呢,比如前1000条数据处理结束后,再处理1001至2000条,然后再处理2001至3000条……,直到全部处理完毕?
$q="select * from member'";$r=$obj_db->simplequery($q);while($a=$obj_db->fetchrow($r,DB_FETCHMODE_ASSOC)){$i++;$ep=1000;//这里假设处理完第1个1000条后再处理第二个1000条,直至处理结束? $id=$a[id]; $mccd=$a[cca]+$a[ccb]; $query="insert into mingxi (mid,mccd,mtime) values ('$id'