php分批更新数据
2018-02-28
59
有的时候我们可能会遇到要刷新数据的操作,但是一次更新太多数据的话会使出现502的现象,那么我们常用到的方法就是批量自动刷新。
我最近就遇到要批量下载远程图片到本地然后更新图片地址到数据库,代码如下public function dowm(){
$page = isset( $_GET['page'] )?$_GET['page']:1;
$model = M("xcx_collect");
if( $page <= 560 ){
$limit = ($page - 1) * 10 . "," . 10;
$pageSize = ceil(5600/10);
$xcxCollectList = $model->field("ID,icon,qrcode,images")
->where("flag=0")->order("ID desc")->limit($limit)->select();
foreach($xcxCollectList as $key=>$value){
$where['ID'] = $value["id"];
$images = str_replace(PHP_EOL,",",trim($value['images']));
$images = $this->downpic($images);
$data['images'] = str_replace(",",PHP_EOL,trim($images));
$data['icon'] = $this->downpic($value['icon']);
$data['qrcode'] = $this->downpic($value['qrcode']);
$data['flag'] = 1;
$model->where($where)->save($data);
}
echo '正在处理数据,总共页数为'.$pageSize.'......';
}
}
主要原理就是少选出需要批量更新的数据,然后执行update操作,用echo '正在处理数据,总共页数为'.$pageSize.'......';
这条使浏览器自动刷新就可以
分享到: