Yii2 批量插入、更新数据实例


Posted in PHP onMarch 15, 2017

在使用yii2开发项目时,有时候会遇到这样的情况:

向后台发送多条数据,其中一些数据已经存在记录,只需要对其部分字段的值进行修改;而另一部分的数据则需要新添加进去.

这就需要对添加的数据进行判断,其中一些执行update,剩下的执行insert

代码如下,不对的地方请指教:

//批量更新,并将需要批量插入的数据放入数组中

foreach($goods as $k => $v)
{
  if(yourModel::updateAllCounters(
    ['goods_num' => $v],
    ['goods_id' => $k,'user_id' => $id] 
  ))
  {
    continue;//如果已经更新,则跳过此次循环,到下一次
  }

  $data[] = [
    'user_id' => $id,
    'goods_id' => $k,
    'goods_num' => $v,
    'created_time' => $time,
  ]
}

//再执行批量插入
if (isset($data)) 
{
  Yii::$app->db->createCommand()
       ->batchInsert(yourModel::tableName(),['user_id','goods_id','goods_num','created_time'],
       $data)
       ->execute();
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
php 攻击方法之谈php+mysql注射语句构造
Oct 30 PHP
php Smarty date_format [格式化时间日期]
Mar 15 PHP
php查看请求头信息获取远程图片大小的方法分享
Dec 25 PHP
php中switch与ifelse的效率区别及适用情况分析
Feb 12 PHP
PHP+Mysql+jQuery查询和列表框选择操作实例讲解
Oct 22 PHP
PHP函数shuffle()取数组若干个随机元素的方法分析
Apr 02 PHP
smarty自定义函数用法示例
May 20 PHP
php四种定界符详解
Feb 16 PHP
浅谈PHP表单提交(POST&GET&URL编/解码)
Apr 03 PHP
基于thinkPHP3.2实现微信接入及查询token值的方法
Apr 18 PHP
浅谈PHP无限极分类原理
Mar 14 PHP
PHP替换Word中变量并导出PDF图片的实现方法
Nov 26 PHP
Yii实现复选框批量操作实例代码
Mar 15 #PHP
thinkPHP实现签到功能的方法
Mar 15 #PHP
thinkPHP框架实现图像裁剪、缩放、加水印的方法
Mar 14 #PHP
ThinkPHP框架分布式数据库连接方法详解
Mar 14 #PHP
让ThinkPHP的模板引擎达到最佳效率的方法详解
Mar 14 #PHP
thinkphp3.2实现跨控制器调用其他模块的方法
Mar 14 #PHP
Yii2下点击验证码的切换实例代码
Mar 14 #PHP
You might like
php 文本文件的读取效率
2012/02/10 PHP
php后门URL的防范
2013/11/12 PHP
php实现将Session写入数据库
2015/07/26 PHP
ThinkPHP使用getlist方法实现数据搜索功能示例
2017/05/08 PHP
Laravel 6 将新增为指定队列任务设置中间件的功能
2019/08/06 PHP
laravel5.5添加echarts实现画图功能的方法
2019/10/09 PHP
ASP.NET jQuery 实例5 (显示CheckBoxList成员选中的内容)
2012/01/13 Javascript
js批量设置样式的三种方法不推荐使用with
2013/02/25 Javascript
js动态添加事件并可传参数示例代码
2013/10/21 Javascript
JavaScript编写推箱子游戏
2015/07/07 Javascript
Jquery简单分页实现方法
2015/07/24 Javascript
jquery实现点击弹出带标题栏的弹出层(从右上角飞入)效果
2015/09/19 Javascript
轻松学习jQuery插件EasyUI EasyUI创建树形网络(1)
2015/11/30 Javascript
使用jQuery实现WordPress中的Ctrl+Enter和@评论回复
2016/05/21 Javascript
angular-ui-sortable实现可拖拽排序列表
2016/12/28 Javascript
nodeJs实现基于连接池连接mysql的方法示例
2018/02/10 NodeJs
微信小程序之判断页面滚动方向的示例代码
2018/08/30 Javascript
layui多iframe页面控制定时器运行的方法
2019/09/05 Javascript
vue绑定数字类型 value为数字的实例
2020/08/31 Javascript
JavaScript实现图片合成下载的示例
2020/11/19 Javascript
[06:48]DOTA2-DPC中国联赛2月26日Recap集锦
2021/03/11 DOTA
Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)
2008/09/06 Python
Python实现二叉树前序、中序、后序及层次遍历示例代码
2019/05/18 Python
100行Python代码实现每天不同时间段定时给女友发消息
2019/09/27 Python
Python logging模块写入中文出现乱码
2020/05/21 Python
美国女士时尚珠宝及配饰购物网站:Icing
2018/07/02 全球购物
啤酒销售实习自我鉴定
2013/09/24 职场文书
运动会稿件100字
2014/02/21 职场文书
机械设计及其自动化专业求职信
2014/06/09 职场文书
横幅标语大全
2014/06/17 职场文书
交通事故委托书范本(2篇)
2014/09/21 职场文书
运动会400米加油稿(8篇)
2014/09/22 职场文书
教师党员个人总结
2015/02/10 职场文书
行政经理岗位职责
2015/04/15 职场文书
超市食品安全承诺书
2015/04/29 职场文书
来探秘“德国中小企业”的成功之道
2019/07/26 职场文书