php基于laravel框架的批量插入操作
程序员文章站
2022-05-18 10:41:32
...
在日常开发中,用到批量插入的操作还是挺多的。记得很早很早以前,我还是在循环中写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、循环查询到的
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实现批量插入的效率还是可以的,只不过楼主插入的量少,也没有具体实现过性能这块。以后有发现的话就再写出来分享给大家。
end
推荐阅读
-
深入解析PHP的Laravel框架中的event事件操作,laravelevent_PHP教程
-
CI框架AR操作(数组形式)实现插入多条sql数据的方法_PHP
-
CI框架AR操作(数组形式)实现插入多条sql数据的方法_php实例
-
CI框架AR操作(数组形式)实现插入多条sql数据的方法,ciar_PHP教程
-
php基于laravel框架的批量插入操作
-
深入解析PHP的Laravel框架中的event事件操作,laravelevent_PHP教程
-
CI框架AR操作(数组形式)实现插入多条sql数据的方法,ciar_PHP教程
-
PHP框架 Laravel Eloquent ORM 批量插入数据,怎么实现?
-
深入解析PHP的Laravel框架中的event事件操作,laravelevent
-
深入解析PHP的Laravel框架中的event事件操作_PHP