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 相关文章推荐
phpinfo 系统查看参数函数代码
Jun 05 PHP
封装一个PDO数据库操作类代码
Sep 09 PHP
frename PHP 灵活文件命名函数 frename
Sep 09 PHP
来自phpguru得Php Cache类源码
Apr 15 PHP
PHP stristr() 函数(不区分大小写的字符串查找)
Jun 03 PHP
php中使用DOM类读取XML文件的实现代码
Dec 14 PHP
探讨:如何使用PhpDocumentor生成文档
Jun 25 PHP
PHP数组操作类实例
Jul 11 PHP
PHP安装GeoIP扩展根据IP获取地理位置及计算距离的方法
Jul 01 PHP
php 数组字符串搜索array_search技巧
Jul 05 PHP
PHP经典实用正则表达式小结
May 04 PHP
php中请求url的五种方法总结
Jul 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字符转义相关函数小结(php下的转义字符串)
2007/04/12 PHP
php入门学习知识点七 PHP函数的基本应用
2011/07/14 PHP
php摘要生成函数(无乱码)
2012/02/04 PHP
以实例全面讲解PHP中多进程编程的相关函数的使用
2015/08/18 PHP
php模拟post上传图片实现代码
2016/06/24 PHP
深入认识JavaScript中的函数
2007/01/22 Javascript
jQuery EasyUI API 中文文档 - ProgressBar 进度条
2011/09/29 Javascript
javascript结合ajax读取txt文件内容
2014/12/05 Javascript
Javascript基础教程之定义和调用函数
2015/01/18 Javascript
JavaScript设置body高度为浏览器高度的方法
2015/02/09 Javascript
JS对字符串编码的几种方式使用指南
2015/05/14 Javascript
AngularJS操作键值对象类似java的hashmap(填坑小结)
2016/11/12 Javascript
js使用i18n实现页面国际化的方法
2017/05/09 Javascript
微信小程序表单弹窗实例
2018/07/19 Javascript
实例分析vue循环列表动态数据的处理方法
2018/09/28 Javascript
three.js 将图片马赛克化的示例代码
2020/07/31 Javascript
nodeJs项目在阿里云的简单部署
2020/11/27 NodeJs
python判断、获取一张图片主色调的2个实例
2014/04/10 Python
简述Python中的面向对象编程的概念
2015/04/27 Python
Python爬取网易云音乐热门评论
2017/03/31 Python
Django中间件工作流程及写法实例代码
2018/02/06 Python
Python3非对称加密算法RSA实例详解
2018/12/06 Python
python分批定量读取文件内容,输出到不同文件中的方法
2018/12/08 Python
python利用跳板机ssh远程连接redis的方法
2019/02/19 Python
Pycharm远程连接服务器并实现代码同步上传更新功能
2020/02/25 Python
python中entry用法讲解
2020/12/04 Python
CSS3中动画属性transform、transition和animation属性的区别
2016/09/25 HTML / CSS
俄罗斯茶和咖啡网上商店:Tea.ru
2021/01/26 全球购物
英国Iceland杂货店:网上食品购物
2020/12/16 全球购物
计算机专业自荐信
2013/10/14 职场文书
毕业生造价工程师求职信
2013/10/17 职场文书
网络技术专业求职信
2014/02/18 职场文书
个人催款函范文
2015/06/24 职场文书
如何做好员工培训计划?
2019/07/09 职场文书
基于HTML十秒做出淘宝页面
2021/10/24 HTML / CSS
Python函数中apply、map、applymap的区别
2021/11/27 Python