mysql编辑前1000行数据_mysql用php如何分批处理插入?比如前1000条数据处理结束后,再处理1001至2000条,然后再处理2001至3000条…直到全部处理完毕...

mysql用php怎么分批处理插入?比如前1000条数据处理结束后,再处理1001至2000条,然后再处理2001至3000条……,直到全部处理完毕?

当表 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','$mccd','$time')";

$obj_db->simplequery($query);

}

请高手帮写出详细代码,谢谢!因代码隐藏在后台执行,所以不要考虑用分页一页一页手工去点的方式

------解决方案--------------------

可以用 insert into mingxi (mid,mccd,mtime) select id, cca+ccb, time from member

------解决方案--------------------

$offs = isset($_GET['offs']) ? $_GET['offs'] : 1;

$sql = "select * from member limit $offs, 1000";

//做你该做的事

header("Location: $_SERVER[PHP_SELF]?offs=" . ($offs+1000));

相关文章

相关视频

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值