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 相关文章推荐
phpMyAdmin下载、安装和使用入门教程
May 31 PHP
Windows下利用Gvim写PHP产生中文乱码问题解决方法
Apr 20 PHP
如何使用PHP计算上一个月的今天
May 23 PHP
PHP版 汉字转码的实现详解
Jun 09 PHP
php中url函数介绍及使用示例
Feb 13 PHP
destoon实现商铺管理主页设置增加新菜单的方法
Jun 26 PHP
PHP的APC模块实现上传进度条
Oct 27 PHP
php生成4位数字验证码的实现代码
Nov 23 PHP
PHP实现批量删除(封装)
Apr 28 PHP
Laravel中任务调度console使用方法小结
May 07 PHP
PHP常用操作类之通信数据封装类的实现
Jul 16 PHP
Laravel框架Eloquent ORM删除数据操作示例
Dec 03 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
PHPWind 发帖回帖Api PHP版打包下载
2010/02/08 PHP
PHP文件上传类实例详解
2016/04/08 PHP
PHP 的Opcache加速的使用方法
2017/12/29 PHP
JavaScript 异步调用框架 (Part 4 - 链式调用)
2009/08/04 Javascript
让JavaScript拥有类似Lambda表达式编程能力的方法
2010/09/12 Javascript
异步加载script的代码
2011/01/12 Javascript
javascript 内存回收机制理解
2011/01/17 Javascript
window.print打印指定div指定网页指定区域的方法
2014/08/04 Javascript
js实现导航栏中英文切换效果
2017/01/16 Javascript
Google 爬虫如何抓取 JavaScript 的内容
2017/04/07 Javascript
微信小程序实现添加手机联系人功能示例
2017/11/30 Javascript
通过实例了解JS 连续赋值
2019/09/24 Javascript
Vue实现开心消消乐游戏算法
2019/10/22 Javascript
[54:57]DOTA2-DPC中国联赛定级赛 Aster vs DLG BO3第二场 1月8日
2021/03/11 DOTA
Python中处理字符串之islower()方法的使用简介
2015/05/19 Python
Python实现读取及写入csv文件的方法示例
2018/01/12 Python
Django中的CBV和FBV示例介绍
2018/02/25 Python
Flask框架Flask-Login用法分析
2018/07/23 Python
python使用adbapi实现MySQL数据库的异步存储
2019/03/19 Python
python elasticsearch从创建索引到写入数据的全过程
2019/08/04 Python
python3 反射的四种基本方法解析
2019/08/26 Python
在pytorch中动态调整优化器的学习率方式
2020/06/24 Python
Farfetch巴西官网:奢侈品牌时尚购物平台
2020/10/19 全球购物
目标责任书范本
2014/04/16 职场文书
建设工地安全标语
2014/06/07 职场文书
2014年自愿离婚协议书范本
2014/09/25 职场文书
党的群众路线学习笔记
2014/11/06 职场文书
研究生毕业论文导师评语
2014/12/31 职场文书
2015年医德医风工作总结
2015/04/02 职场文书
大学升旗仪式主持词
2015/07/04 职场文书
2015年教师党员个人总结
2015/11/24 职场文书
分享15个Webpack实用的插件!!!
2021/03/31 Javascript
Pygame Event事件模块的详细示例
2021/11/17 Python
最新最全的手机号验证正则表达式
2022/02/24 Javascript
Redis 报错 error:NOAUTH Authentication required
2022/05/15 Redis
Python使用pandas导入csv文件内容的示例代码
2022/12/24 Python