Yii2 批量插入、更新数据实例

发布时间 - 2026-01-11 00:10:29    点击率:

在使用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();
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# yii2  # 批量更新  # yii  # 批量更新数据  # yii框架结合charjs实现统计30天数据的方法  # yii 框架实现按天  #   #   # 自定义时间段统计数据的方法分析  # Yii统计不同类型邮箱数量的方法  # Yii中的relations数据关联查询及统计功能用法详解  # 解析yii数据库的增删查改  # Yii2框架数据库简单的增删改查语法小结  # Yii2.0高级框架数据库增删改查的一些操作  # yii框架表单模型使用及以数组形式提交表单数据示例  # Yii实现MySQL多数据库和读写分离实例分析  # Yii+MYSQL锁表防止并发情况下重复数据的方法  # Yii实现多数据库主从读写分离的方法  # yii框架结合charjs统计上一年与当前年数据的方法示例  # 这就  # 对其  # 并将  # 只需要  # 跳过  # 多条  # 大家多多  # 开发项目  # 则需  # 地方请  # 组中  # php  # foreach  # goods  # pre  # insert  # update  # brush  # class  # gt 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 实现点击下箭头变上箭头来回切换的两种方法【推荐】  Laravel Debugbar怎么安装_Laravel调试工具栏配置指南  canvas 画布在主流浏览器中的尺寸限制详细介绍  Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】  打开php文件提示内存不足_怎么调整php内存限制【解决方案】  Laravel Artisan命令怎么自定义_创建自己的Laravel命令行工具完全指南  浅述节点的创建及常见功能的实现  如何在不使用负向后查找的情况下匹配特定条件前的换行符  微信小程序制作网站有哪些,微信小程序需要做网站吗?  如何用免费手机建站系统零基础打造专业网站?  Laravel怎么做数据加密_Laravel内置Crypt门面的加密与解密功能  Python面向对象测试方法_mock解析【教程】  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  Laravel定时任务怎么设置_Laravel Crontab调度器配置  软银砸40亿美元收购DigitalBridge 强化AI资料中心布局  如何打造高效商业网站?建站目的决定转化率  Mybatis 中的insertOrUpdate操作  Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】  Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧  Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验  宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法  装修招标网站设计制作流程,装修招标流程?  使用PHP下载CSS文件中的所有图片【几行代码即可实现】  悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音  深圳网站制作培训,深圳哪些招聘网站比较好?  香港服务器建站指南:免备案优势与SEO优化技巧全解析  laravel怎么在请求结束后执行任务(Terminable Middleware)_laravel Terminable Middleware请求结束任务执行方法  Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤  php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】  百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏  如何在IIS7上新建站点并设置安全权限?  如何用PHP快速搭建CMS系统?  如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框  MySQL查询结果复制到新表的方法(更新、插入)  Laravel如何实现数据库事务?(DB Facade示例)  浅谈Javascript中的Label语句  Laravel Seeder填充数据教程_Laravel模型工厂Factory使用  iOS UIView常见属性方法小结  INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】  音响网站制作视频教程,隆霸音响官方网站?  香港服务器网站卡顿?如何解决网络延迟与负载问题?  Laravel如何使用Eloquent进行子查询  网站制作壁纸教程视频,电脑壁纸网站?  公司门户网站制作流程,华为官网怎么做?  如何在景安云服务器上绑定域名并配置虚拟主机?  nginx修改上传文件大小限制的方法  Laravel如何操作JSON类型的数据库字段?(Eloquent示例)  黑客如何通过漏洞一步步攻陷网站服务器?  Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】  网站优化排名时,需要考虑哪些问题呢?