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

作者:hebo5485 时间:2024-05-22 10:01:47 

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

来源:http://www.yiichina.com/tutorial/1068

标签:yii,批量
0
投稿

猜你喜欢

  • asp去除html标记与空格的正则

    2022-12-15 08:40:12
  • opencv python在视屏上截图功能的实现

    2021-04-14 04:00:30
  • jetbrains mono字体安装方法(推荐)

    2023-08-28 23:11:38
  • 实例简析XPath串函数和XSLT

    2008-09-04 14:16:00
  • Python运行DLL文件的方法

    2021-12-25 15:23:21
  • Python requests接口测试实现代码

    2023-09-10 18:09:21
  • XML与HTML的结合(下)

    2008-09-05 17:20:00
  • 在Python运行时动态查看进程内部信息的方法

    2021-06-09 09:15:40
  • python3爬虫学习之数据存储txt的案例详解

    2022-01-17 05:02:09
  • 详解python:time模块用法

    2023-04-12 06:06:48
  • .net 6精简版webapi教程及热重载、代码自动反编译演示

    2024-05-05 09:13:12
  • Python之time模块的时间戳,时间字符串格式化与转换方法(13位时间戳)

    2023-07-25 08:46:01
  • Python中ini配置文件读写的实现

    2021-03-15 09:52:01
  • python3 requests 各种发送方式详解

    2021-04-06 09:03:22
  • MySQL慢查询日志的作用和开启

    2024-01-21 20:23:33
  • python学习笔记之调用eval函数出现invalid syntax错误问题

    2023-11-03 01:48:30
  • linux环境中没有网络怎么下载python

    2021-01-30 04:42:12
  • python中内置库os与sys模块的详细介绍

    2021-12-05 21:30:33
  • python global和nonlocal用法解析

    2022-05-17 02:56:17
  • Python调用百度OCR实现图片文字识别的示例代码

    2021-04-07 14:21:50
  • asp之家 网络编程 m.aspxhome.com