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 相关文章推荐
其他功能
Oct 09 PHP
PHP 命名空间实例说明
Jan 27 PHP
神盾加密解密教程(三)PHP 神盾解密工具
Jun 08 PHP
PHP学习笔记(二) 了解PHP的基本语法以及目录结构
Aug 04 PHP
php使用str_replace实现输入框回车替换br的方法
Nov 24 PHP
PHP写的简单数字验证码实例
May 23 PHP
php7安装mongoDB扩展的方法分析
Aug 02 PHP
PHP输出Excel PHPExcel的方法
Jul 26 PHP
Laravel使用原生sql语句并调用的方法
Oct 09 PHP
laravel5.6中的外键约束示例
Oct 23 PHP
如何在centos8自定义目录安装php7.3
Nov 28 PHP
PHP操作Redis常用命令的实例详解
Dec 23 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 中提示undefined index如何解决(多种方法)
2016/03/16 PHP
linux下php上传文件注意事项
2016/06/11 PHP
js调用图片隐藏&显示实现代码
2013/09/13 Javascript
JS获取地址栏参数的几种方法小结
2014/02/28 Javascript
jQuery实现网页抖动的菜单抖动效果
2015/08/07 Javascript
基于jQuery Tipso插件实现消息提示框特效
2016/03/16 Javascript
Angular懒加载机制刷新后无法回退的快速解决方法
2016/08/30 Javascript
运用js教你轻松制作html音乐播放器
2020/04/17 Javascript
简单的jQuery拖拽排序效果的实现(增强动态)
2017/02/09 Javascript
BootStrapValidator初使用教程详解
2017/02/10 Javascript
NodeJS基础API搭建服务器详细过程记录
2017/04/01 NodeJs
js 判断一个数字是不是2的n次方幂的实例
2017/11/26 Javascript
浏览器调试动态js脚本的方法(图解)
2018/01/19 Javascript
React Hooks的深入理解与使用
2018/11/12 Javascript
Vue项目路由刷新的实现代码
2019/04/17 Javascript
jquery实现垂直无限轮播的方法分析
2019/07/16 jQuery
小程序实现左滑删除效果
2019/07/25 Javascript
使用nodejs实现JSON文件自动转Excel的工具(推荐)
2020/06/24 NodeJs
python通过pil模块将raw图片转换成png图片的方法
2015/03/16 Python
Python数据分析之真实IP请求Pandas详解
2016/11/18 Python
python编程之requests在网络请求中添加cookies参数方法详解
2017/10/25 Python
python使用Tkinter实现在线音乐播放器
2018/01/30 Python
详解用TensorFlow实现逻辑回归算法
2018/05/02 Python
Python读取数据集并消除数据中的空行方法
2018/07/12 Python
Python提取支付宝和微信支付二维码的示例代码
2019/02/15 Python
python 正则表达式参数替换实例详解
2020/01/17 Python
Python实现遗传算法(二进制编码)求函数最优值方式
2020/02/11 Python
Python中过滤字符串列表的方法
2020/12/22 Python
浅析两列自适应布局的3种思路
2016/05/03 HTML / CSS
编写一个类体现构造,公有,私有方法,静态,私有变量
2013/08/10 面试题
行政助理岗位职责
2013/11/10 职场文书
新郎婚宴答谢词
2014/01/19 职场文书
教师党的群众路线教育实践活动学习心得体会
2014/10/30 职场文书
2015年学校关工委工作总结
2015/04/03 职场文书
Pytorch GPU内存占用很高,但是利用率很低如何解决
2021/06/01 Python
详解Java实现设计模式之责任链模式
2021/06/23 Java/Android