详细解说php基于laravel框架的批量插入(教程)

2022-05-15 0 711

详细解说php基于laravel框架的批量插入(教程)

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

废话不多说,开码!

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

详细解说php基于laravel框架的批量插入(教程)
由图可知: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、循环查询到的arr,并且循环向空数组arr,并且循环向空数组arr,并且循环向空数组ret中插入数据,形成正确的数组格式

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实现批量插入的效率还是可以的,只不过楼主插入的量少,也没有具体实现过性能这块。以后有发现的话就再写出来分享给大家。

感谢大家的阅读,希望大家有所收益

本文转自:https://blog.csdn.net/LJFPHP/article/details/78268029

推荐教程:《Laravel教程》

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

【声明:根据2013年1月30日《计算机软件保护条例》2次修订第17条规定: 为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存 储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬! 鉴于此,也希望大家按此说明研究软件!】
本站所有源码尽量保证原汁原味,如有特殊情况会作出声明及标注,网站资源不做任何二次加密(原版加密除外,不影响程序使用的不会做解密处理),方便您更好的学习参考。 在您的能力范围内,为了大环境的良性发展,请尽可能的选择正版资源。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

即刻码站__国内靠谱的站长资源下载平台 php教程 详细解说php基于laravel框架的批量插入(教程) https://www.jike1995.com/36083.html

常见问题
  • 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用
查看详情
  • 最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度
查看详情

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务