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 文章中的远程图片采集到本地的代码
Jul 30 PHP
php面向对象全攻略 (五) 封装性
Sep 30 PHP
PHP定时执行计划任务的多种方法小结
Dec 19 PHP
php警告Creating default object from empty value 问题的解决方法
Apr 02 PHP
编译PHP报错configure error Cannot find libmysqlclient under usr的解决方法
Jun 27 PHP
destoon实现调用热门关键字的方法
Jul 15 PHP
php实现模拟登陆方正教务系统抓取课表
May 19 PHP
解决PHP程序运行时:Fatal error: Maximum execution time of 30 seconds exceeded in的错误提示
Nov 25 PHP
php+mysql+ajax实现单表多字段多关键词查询的方法
Apr 15 PHP
PHP中phar包的使用教程
Jun 14 PHP
php生成条形码的图片的实例详解
Sep 13 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
Jun 13 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速成大法
2015/01/30 PHP
PHP使用file_get_content设置头信息的方法
2016/02/14 PHP
PHP读取目录树的实现方法分析
2019/03/22 PHP
微信小程序发送订阅消息的方法(php 为例)
2019/10/30 PHP
jQuery探测位置的提示弹窗(toolTip box)详细解析
2013/11/14 Javascript
从零学习node.js之利用express搭建简易论坛(七)
2017/02/25 Javascript
jQuery remove()过滤被删除的元素(推荐)
2017/07/18 jQuery
js单页hash路由原理与应用实战详解
2017/08/14 Javascript
理解 Node.js 事件驱动机制的原理
2017/08/16 Javascript
详解swiper在vue中的应用(以3.0为例)
2018/09/20 Javascript
ES6 Map结构的应用实例分析
2019/06/26 Javascript
axios实现简单文件上传功能
2019/09/25 Javascript
angular8和ngrx8结合使用的步骤介绍
2019/12/01 Javascript
jQuery实现图片切换效果
2020/10/19 jQuery
Python引用模块和查找模块路径
2016/03/17 Python
Python基于回溯法子集树模板解决全排列问题示例
2017/09/07 Python
Python下载网络文本数据到本地内存的四种实现方法示例
2018/02/05 Python
Python使用MD5加密算法对字符串进行加密操作示例
2018/03/30 Python
Python基于FTP模块实现ftp文件上传操作示例
2018/04/23 Python
python高效过滤出文件夹下指定文件名结尾的文件实例
2018/10/21 Python
python使用递归的方式建立二叉树
2019/07/03 Python
浅析Windows 嵌入python解释器的过程
2019/07/26 Python
Python数据分析模块pandas用法详解
2019/09/04 Python
Python+opencv+pyaudio实现带声音屏幕录制
2019/12/23 Python
Django表单提交后实现获取相同name的不同value值
2020/05/14 Python
使用keras内置的模型进行图片预测实例
2020/06/17 Python
利用 Canvas实现绘画一个未闭合的带进度条的圆环
2019/07/26 HTML / CSS
历史学专业推荐信
2013/11/06 职场文书
商务英语毕业生自荐信范文
2013/11/08 职场文书
总经理职责
2013/12/22 职场文书
服装厂厂长岗位职责
2013/12/27 职场文书
亲子阅读的活动方案
2014/08/15 职场文书
2015年元旦标语大全
2014/12/09 职场文书
Pandas数据类型之category的用法
2021/06/28 Python
Qt自定义Plot实现曲线绘制的详细过程
2021/11/02 Python
MYSQL 运算符总结
2021/11/11 MySQL