下面我贴两段代码:
直接foreach实行sql:
$arr = [];foreach($arr as $k => $v){Db::name('table')->where($where)->([$v['money']=>666]);}
如果这里的$arr是一个有几百上千个元素的二维数组,那你这个Db直接就运行了这么多次。会造成的视觉上的后果便是系统变得很卡,非常卡,做事器如果配置不足可能会挂壁,那么这里优化一下把所有须要实行的语句,综合成一句让他逐步遍历直到完成。
$array=[];foreach($arr as $k => $v){ $v['name'] = '修正后的内容';$array = array_merge($array,$v);}$table = new Table;$table->saveAll($array);
把稳这句$table = new Table;
saveAll方法必须要先实例化一次才可以调用,这样写,末了实现便是实行一次sql但是把所有元素的更新都实现了,不放心数据偏差可以开启Db事务处理,这些都是后续的优化了。新手碰到这个地方很随意马虎走的一个坑。哈哈我也不咋滴,有不对的地方希望大家示正。