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+oracle 分页类
Oct 09 PHP
PHP实时显示输出
Oct 02 PHP
php UTF8 文件的签名问题
Oct 30 PHP
php url地址栏传中文乱码解决方法集合
Jun 25 PHP
检测png图片是否完整的php代码
Sep 06 PHP
PHP采集利器 Snoopy 试用心得
Jul 03 PHP
php array的学习笔记
May 10 PHP
thinkphp 一个页面使用2次分页的实现方法
Jul 15 PHP
详解PHP匿名函数与注意事项
Mar 29 PHP
Windows下PHP开发环境搭建教程(Apache+PHP+MySQL)
Jun 13 PHP
php实现微信企业转账功能
Oct 02 PHP
启用OPCache提高PHP程序性能的方法
Mar 21 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
第十节--抽象方法和抽象类
2006/11/16 PHP
php把数据表导出为Excel表的最简单、最快的方法(不用插件)
2014/05/10 PHP
php生成二维码
2015/08/10 PHP
PHP 表单提交及处理表单数据详解及实例
2016/12/27 PHP
php获取linux命令结果的实例
2017/03/13 PHP
JavaScript跨浏览器获取页面中相同class节点的方法
2015/03/03 Javascript
JavaScript中的方法重载实例
2015/03/16 Javascript
用javascript实现自动输出网页文本
2015/07/30 Javascript
JS实现回到页面顶部动画效果的简单实例
2016/05/24 Javascript
js获取时间函数及扩展函数的方法
2016/10/30 Javascript
js指定步长实现单方向匀速运动
2017/07/17 Javascript
JS 实现微信扫一扫功能
2018/09/14 Javascript
如何优雅的在一台vps(云主机)上面部署vue+mongodb+express项目
2019/01/20 Javascript
webpack4.x下babel的安装、配置及使用详解
2019/03/07 Javascript
Node爬取大批量文件的方法示例
2019/06/28 Javascript
js使用文档就绪函数动态改变页面内容示例【innerHTML、innerText】
2019/11/07 Javascript
微信小程序商品详情页底部弹出框
2019/11/22 Javascript
JavaScript实现猜数字游戏
2020/05/20 Javascript
vue实现一个获取按键展示快捷键效果的Input组件
2021/01/13 Vue.js
python检测远程服务器tcp端口的方法
2015/03/14 Python
Python运用于数据分析的简单教程
2015/03/27 Python
Django中URL视图函数的一些高级概念介绍
2015/07/20 Python
Django URL传递参数的方法总结
2016/08/28 Python
Python实现的排列组合、破解密码算法示例
2019/04/12 Python
用Cython加速Python到“起飞”(推荐)
2019/08/01 Python
python opencv圆、椭圆与任意多边形的绘制实例详解
2020/02/06 Python
sklearn中的交叉验证的实现(Cross-Validation)
2021/02/22 Python
css3中单位px,em,rem,vh,vw,vmin,vmax的区别及浏览器支持情况
2016/12/06 HTML / CSS
Bjorn Borg官方网上商店:国际运动时尚品牌
2016/08/27 全球购物
货车司机岗位职责
2014/03/18 职场文书
家长对老师的评语
2014/04/18 职场文书
贸易经济专业自荐书
2014/06/29 职场文书
人事专员岗位职责说明书
2014/07/30 职场文书
副主任竞聘演讲稿
2014/08/18 职场文书
卫生保健工作总结2015
2015/05/18 职场文书
一篇文章带你掌握SQLite3基本用法
2022/06/14 数据库