两分钟了解laravel框架中的批量插入操作

互联网 20-7-18

在日常开发中,用到批量插入的操作还是挺多的。记得很早很早以前,我还是在循环中写sql插入,结果被项目经理按在地上摩擦。好吧,性能这东西,用不到的时候还好,万一性能成为瓶颈,那代码优化,数据库优化就首当其冲了。

废话不多说,开码!

一、首先是查看laravel5.1手册

由图可知:laravel提供了insert插入数组的方法,也就是说,我们可以直接insert($array)实现批量插入的操作

二、先使用laravel的get()查询,获取数组对象,然后批量插入的操作

$ret = [];     $create_red = new create_red();     foreach($arr3 as $v){       $delayDays = $v->delayDays;       $workDays = $v->workDays;       //获取当天时间戳的0点       $now = strtotime(date('Y-m-d',time()));  ;       $start = $now + $delayDays*86400;       $start_at = date("Y-m-d H:i:s",$start);       $end =  $now + $delayDays*86400 + $workDays*86400;       $end_at = date('Y-m-d H:i:s',$end);       $created_at = date("Y-m-d H:i:s",$now);       $ret[] = [         'uid'=>$uid,         'status'=>1,         'title'=>$v->title,         'desc'=>$v->desc,         'discount'=>$v->discount,         'minprice'=>$v->minprice,         'imgurl'=>$v->imgurl,         'start_at'=>$start_at,         'end_at'=>$end_at,       ];     }     //往数据库批量插入数据     $result = $create_red::insert($ret);     if(!$result){       DB::rollBack();       return MyResponse::error(9006,'兑换优惠券失败');     }

1、新建一个空数组

2、循环查询到的arrarr,并且循环向空数组arrret中插入数据,形成正确的数组格式

3、实例化数据表的model类

4、使用model::insert($array)的方法批量插入

5、结果是OK的,批量插入成功

三、批量生成兑换码之后的批量插入

先上代码:

 $num = 200;     $codeArr = [];     for($i=0;$i<$num;$i++){       $code = EventCode::rand_str(8);       $codeArr[$i]['code'] = $code;     }     /*var_dump($codeArr);     exit;*/     $event = new EventCode();     $arr = $event::insert($codeArr);     if(!$arr){       return MyResponse::error('生成兑换码失败');     }

1、新建一个空数组

2、循环生成兑换码,并写入数组

3、打印数组,数组显示正常之后,利用insert()方法插入

4、这里的插入效果也是OK的,

利laravel自带的insert实现批量插入的效率还是可以的,只不过楼主插入的量少,也没有具体实现过性能这块。以后有发现的话就再写出来分享给大家。

推荐教程:《Laravel》

以上就是两分钟了解laravel框架中的批量插入操作的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: laravel
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:教你在Laravel中轻松容易的输出完整的SQL语句

相关资讯