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开发大型项目的一点经验
Oct 09 PHP
php strlen mb_strlen计算中英文混排字符串长度
Jul 10 PHP
PHP 事务处理数据实现代码
May 13 PHP
关于PHP自动判断字符集并转码的详解
Jun 26 PHP
PHP制作3D扇形统计图以及对图片进行缩放操作实例
Oct 23 PHP
如何使用微信公众平台开发模式实现多客服
Jan 06 PHP
如何解决PHP使用mysql_query查询超大结果集超内存问题
Mar 14 PHP
thinkPHP+ajax实现统计页面pv浏览量的方法
Mar 15 PHP
浅谈PHP中如何实现Hook机制
Nov 14 PHP
PHP实现的装箱算法示例
Jun 23 PHP
详解Laravel设置多态关系模型别名的方式
Oct 17 PHP
PHP连接MySQL数据库三种实现方法
Dec 10 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文件操作实现代码分享
2011/09/01 PHP
thinkPHP批量删除的实现方法分析
2016/11/09 PHP
jQuery 打造动态渐变按钮 详细图文教程
2010/04/25 Javascript
javascript 内存回收机制理解
2011/01/17 Javascript
Javascript在IE和FireFox中的不同表现简析
2012/12/03 Javascript
每天一篇javascript学习小结(基础知识)
2015/11/10 Javascript
JS实现图片平面旋转的方法
2016/03/01 Javascript
基于javascript实现九九乘法表
2016/03/27 Javascript
JavaScript中自带的 reduce()方法使用示例详解
2016/08/10 Javascript
js设置和获取自定义属性的方法
2016/10/20 Javascript
Vue组件化通讯的实例代码
2017/06/23 Javascript
JavaScript实现瀑布流图片效果
2017/06/30 Javascript
vue.js学习笔记之v-bind和v-on解析
2018/05/03 Javascript
微信小程序开发问题之wx.previewImage
2018/12/25 Javascript
微信小程序对图片进行canvas压缩的方法示例详解
2020/11/12 Javascript
通过实例解析js可枚举属性与不可枚举属性
2020/12/02 Javascript
python连接MySQL数据库实例分析
2015/05/12 Python
Python文件去除注释的方法
2015/05/25 Python
python函数局部变量用法实例分析
2015/08/04 Python
python接口调用已训练好的caffe模型测试分类方法
2019/08/26 Python
利用Python绘制有趣的万圣节南瓜怪效果
2019/10/31 Python
python常用排序算法的实现代码
2019/11/08 Python
python函数enumerate,operator和Counter使用技巧实例小结
2020/02/22 Python
python小白切忌乱用表达式
2020/05/29 Python
HTML5 Canvas 旋转风车绘制
2017/08/18 HTML / CSS
美国二手奢侈品寄售网站:TheRealReal
2016/10/29 全球购物
意大利香水和彩妆护肤品购物网站:Ditano
2017/08/13 全球购物
香港连卡佛百货官网:Lane Crawford
2019/09/04 全球购物
DeinDesign德国:设计自己的手机壳
2019/12/14 全球购物
介绍一下javax.servlet.Servlet接口及其主要方法
2015/11/30 面试题
国外的一些J2EE面试题一
2012/10/13 面试题
迎新春趣味活动方案
2014/08/24 职场文书
旷工检讨书1000字
2015/01/01 职场文书
二十年同学聚会感言
2015/07/30 职场文书
2016党员三严三实心得体会
2016/01/15 职场文书
python异步的ASGI与Fast Api实现
2021/07/16 Python