在使用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 yii 插入,Yii2 批量插入、更新数据实例相关推荐

  1. oracle批量将id更新为uuid,oracle批量新增更新数据

    本博客介绍一下Oracle批量新增数据和更新数据的sql写法,业务场景是这样的,往一张关联表里批量新增更新数据,然后,下面介绍一下批量新增和更新的写法: 批量新增数据 对于批量新增数据,介绍两种方法 ...

  2. oracle应用之批量新增更新数据

    本博客介绍一下Oracle批量新增数据和更新数据的sql写法,业务场景是这样的,往一张关联表里批量新增更新数据,然后,下面介绍一下批量新增和更新的写法: 批量新增数据 对于批量新增数据,介绍两种方法 ...

  3. java插入数据库字符串拼接_java连接mysql数据库实现单条插入和批量插入

    本文实例为大家分享了java连接mysql数据库实现单条和批量插入的具体代码,供大家参考,具体内容如下 本文插入数据库的数据来源:java + dom4j.jar提取xml文档内容 1.连接数据库 p ...

  4. mybatis的插入与批量插入的返回ID的原理

    文章目录 背景 底层调用方法 单个对象插入 直接保存实体的对象作为参数传入(给伪代码示例) 多个对象,实体对象作为其中一个对象传入 列表批量插入 直接保存实体的对象作为参数传入(给伪代码示例) 多个对 ...

  5. mysqlplus 批量插入_mysql批量插入

    在MySQL数据库中,如果要批量插入数据(特别是上百万级超大数据), 用普通的insert into来操作非常不现实,速度慢人力成本高, 推荐使用Load Data或存储过程来导入数据, 我总结了一些 ...

  6. mongodb 批量插入_MongoDB批量插入– MongoDB插入很多

    mongodb 批量插入 We will look into MongoDB bulk insert today. Multiple documents can be inserted at a ti ...

  7. sql加上唯一索引后批量插入_MySQL批量插入遇上唯一索引避免方法

    一.背景 以前使用SQL Server进行表分区的时候就碰到很多关于唯一索引的问题:Step8:SQL Server 当表分区遇上唯一约束,没想到在MySQL的分区中一样会遇到这样的问题:MySQL表 ...

  8. springboot执行批量插入_Springboot 批量插入优化

    //com.baomidou.mybatisplus.extension.service.impl ServiceImpl /** * 批量插入 * * @param entityList * @pa ...

  9. mysql ibatis 批量插入_ibatis 批量插入逻辑

    ibatis oracle 批量插入配置 insert into T_LAW_STATISTICS_CLASSIFY(ID,TEMPLATE,ALIAS,CONTENT,BACKUP1,BACKUP2 ...

最新文章

  1. div中的图像在图像下方有多余的空间
  2. 对软件测试工程师面试题目的回答[转]
  3. 2.1.6 编码与调制(2)
  4. 保存模型后无法训练_模型构建到部署实践
  5. 获取minist数据并转换成lmdb
  6. FireFox与IE的兼容
  7. 轻松理解牛顿迭代法且用其求平方根
  8. 阿里京东被怼假货泛滥;谷歌 CEO 承认中国版搜索 App 存在;YouTube 全球宕机 | 极客头条...
  9. 【渝粤教育】国家开放大学2018年春季 8643-22T数据库基础与应用 参考试题
  10. g6的minimap中的配置_使用GGEditor开发流程编辑应用
  11. fir.im Weekly - 如何打造真正的工程师文化
  12. AntDesign前端分页
  13. 51定时器PWM调节
  14. ExpRe[10] Ubuntu[2] 准备神秘软件、备份恢复软件
  15. c++ 栈 stack 用法
  16. YOUKU播放器 研究
  17. 我叫mt4服务器注册 满了,我叫MT4注册上限怎么办 人数上限解决办法
  18. 261期计算机开机号,福彩3D2017第261期彩吧3D开机号147
  19. 类似火车头的采集器-免费任意数据采集器
  20. vmvare workstation 15Pro密钥

热门文章

  1. 临近年关,修复ASP.NET Core因浏览器内核版本引发的单点登录故障
  2. 在 DotNetCore 3.0 程序中使用通用协议方式启动文件关联应用
  3. Named Volume 在 MySQL 数据持久化上的基本应用
  4. 【招聘(南京)】南京纳龙科技有限公司招高级.net开发工程师
  5. 美好生活从撸好代码开始
  6. 程序猿修仙之路--数据结构之你是否真的懂数组?
  7. 如何看待微软新开源的Service Fabric?
  8. 微软亚太区资料科学总监:R 语言是 VS 生态第一顺位
  9. Entity Framework Core 1.1 升级通告
  10. Visual Studio Code 1.8版本添加了Hot Exit、Zen Mode及更多调试选项