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 相关文章推荐
浅析memcache启动以及telnet命令详解
Jun 28 PHP
Fatal error: session_start(): Failed to initialize storage module: files问题解决方法
May 04 PHP
php的慢速日志引起的Mysql错误问题分析
May 13 PHP
PHP使用DOMDocument类生成HTML实例(包含常见标签元素)
Jun 25 PHP
php采用ajax数据提交post与post常见方法总结
Nov 10 PHP
php专用数组排序类ArraySortUtil用法实例
Apr 03 PHP
php面向对象值单例模式
May 03 PHP
php实现生成带二维码图片并强制下载功能
Feb 24 PHP
RSA实现JS前端加密与PHP后端解密功能示例
Aug 05 PHP
laravel-admin 实现给grid的列添加行数序号的方法
Oct 08 PHP
YII2框架中查询生成器Query()的使用方法示例
Mar 18 PHP
如何重写Laravel异常处理类详解
Dec 20 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 opendir()列出目录下所有文件的实例代码
2016/10/02 PHP
Yii框架参数化查询中IN查询只能查询一个的解决方法
2017/05/20 PHP
php查询内存信息操作示例
2019/05/09 PHP
PHP goto语句用法实例
2019/08/06 PHP
javascript时间自动刷新实现原理与步骤
2013/01/06 Javascript
jquery使用on绑定a标签无效 只能用live解决
2016/06/02 Javascript
JS简单实现禁止访问某个页面的方法
2016/09/13 Javascript
Node.js 实现简单小说爬虫实例
2016/11/18 Javascript
jQuery在header中设置请求信息的方法
2017/03/06 Javascript
vue引入静态js文件的方法
2020/06/20 Javascript
wxpython 最小化到托盘与欢迎图片的实现方法
2014/06/09 Python
python实现从一组颜色中找出与给定颜色最接近颜色的方法
2015/03/19 Python
python下载文件时显示下载进度的方法
2015/04/02 Python
Python脚本实现虾米网签到功能
2016/04/12 Python
python实现周期方波信号频谱图
2018/07/21 Python
对pandas将dataframe中某列按照条件赋值的实例讲解
2018/11/29 Python
详解用python实现基本的学生管理系统(文件存储版)(python3)
2019/04/25 Python
Python实现使用request模块下载图片demo示例
2019/05/24 Python
python中metaclass原理与用法详解
2019/06/25 Python
python中如何进行连乘计算
2020/05/28 Python
Python类及获取对象属性方法解析
2020/06/15 Python
Ubuntu20下的Django安装的方法步骤
2021/01/24 Python
Pytorch自定义Dataset和DataLoader去除不存在和空数据的操作
2021/03/03 Python
旧时光糖果:Old Time Candy
2018/02/05 全球购物
向全球直邮输送天然健康产品:iHerb.com
2020/05/03 全球购物
建筑设计学生的自我评价
2014/01/16 职场文书
中专自我鉴定
2014/02/05 职场文书
竞选班长演讲稿400字
2014/08/22 职场文书
反腐倡廉剖析材料
2014/09/30 职场文书
大学生操行评语大全
2014/12/31 职场文书
员工福利申请报告
2015/05/15 职场文书
法人代表资格证明书
2015/06/18 职场文书
小学生暑假生活总结
2015/07/13 职场文书
2016年党员创先争优承诺书
2016/03/25 职场文书
微信小程序实现聊天室功能
2021/06/14 Javascript
Vue.js中v-for指令的用法介绍
2022/03/13 Vue.js