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网页后退不再出现过期
Mar 08 PHP
php操作excel文件 基于phpexcel
Jul 02 PHP
PHP5中实现多态的两种方法实例分享
Apr 21 PHP
php实现session自定义会话处理器的方法
Jan 27 PHP
php中使用session防止用户非法登录后台的方法
Jan 27 PHP
codeigniter实现get分页的方法
Jul 10 PHP
PHP魔术方法使用方法汇总
Feb 14 PHP
thinkphp3.2点击刷新生成验证码
Feb 16 PHP
PHP处理CSV表格文件的常用操作方法总结
Jul 01 PHP
详解PHP文件的自动加载(autoloading)
Feb 04 PHP
PHP使用file_get_contents发送http请求功能简单示例
Apr 29 PHP
PHP使用POP3读取邮箱接收邮件的示例代码
Jul 08 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
德生PL990,目前市面上唯一一款便携式插卡蓝牙全波段高性能收音机
2021/03/02 无线电
同一空间绑定多个域名而实现访问不同页面的PHP代码
2006/12/06 PHP
随时给自己贴的图片加文字的php代码
2007/03/08 PHP
php中禁止单个IP与ip段访问的代码小结
2012/07/04 PHP
探讨fckeditor在Php中的配置详解
2013/06/08 PHP
1亿条数据如何分表100张到Mysql数据库中(PHP)
2015/07/29 PHP
PHP中如何防止外部恶意提交调用ajax接口
2016/04/11 PHP
Javascript 判断函数类型完美解决方案
2009/09/02 Javascript
js 幻灯片的实现
2011/12/06 Javascript
JavaScript中创建类/对象的几种方法总结
2013/11/29 Javascript
Jquery通过JSON字符串创建JSON对象
2014/08/24 Javascript
使用AOP改善javascript代码
2015/05/01 Javascript
js判断数组key是否存在(不用循环)的简单实例
2016/08/03 Javascript
jQuery动态修改字体大小的方法【测试可用】
2016/09/09 Javascript
COM组件中调用JavaScript函数详解及实例
2017/02/23 Javascript
React Native 使用Fetch发送网络请求的示例代码
2017/12/02 Javascript
tangram.js库实现js类的方式实例分析
2018/01/06 Javascript
javascript防抖函数debounce详解
2019/06/11 Javascript
[10:24]郎朗助力完美“圣”典,天籁交织奏响序曲
2016/12/18 DOTA
[00:20]TI9观赛名额抽取Ⅱ
2019/07/24 DOTA
Linux下编译安装MySQL-Python教程
2015/02/02 Python
python实现二叉查找树实例代码
2018/02/08 Python
python实现按关键字筛选日志文件
2019/12/24 Python
高考考python编程是真的吗
2020/07/20 Python
HTML5 Canvas图像模糊完美解决办法
2018/02/06 HTML / CSS
纯html5+css3下拉导航菜单实现代码
2013/03/18 HTML / CSS
护理专业推荐信
2013/11/07 职场文书
失业者真诚求职信范文
2013/12/25 职场文书
员工培训心得体会
2013/12/30 职场文书
经典促销广告词大全
2014/03/19 职场文书
《美丽的丹顶鹤》教学反思
2014/04/22 职场文书
大学三年计划书范文
2014/04/30 职场文书
党员批评与自我批评总结
2014/10/15 职场文书
党的群众路线教育实践活动整改落实情况自查报告
2014/10/28 职场文书
2015年社区环境卫生工作总结
2015/04/21 职场文书
Golang 正则匹配效率详解
2021/04/25 Golang