Yii2.0实现的批量更新及批量插入功能示例


Posted in PHP onJanuary 29, 2019

本文实例讲述了Yii2.0实现的批量更新及批量插入功能。分享给大家供大家参考,具体如下:

批量更新

方法1

/**
* 批量更新循环周期
* @param array $condition
* $condition = ['advertise_id' => '','status' => '', 'weekdays'=>[1,2,3]] 查询条件
* $params = ['status' => '']
* @param $params
* @return bool
*/
public function batchUpdateAdSchedule($condition = [], $params)
{
  if (count($condition) == 0 || !is_array($condition) || count($params) == 0) {
    return false;
  }
  $conditions = ' 1 = 1 ';
  $bind = [];
  if (array_key_exists('advertise_id', $condition) && !empty($condition['advertise_id'])) {
    $conditions .= ' AND `advertise_id` = :advertiseId';
    $bind['advertiseId'] = $condition['advertise_id'];
  }
  if (array_key_exists('status', $condition) && !empty($condition['status'])) {
    $conditions .= ' AND `status` = :status';
    $bind['status'] = $condition['status'];
  }
  $result = AdvertiseSchedule::updateAll($params, $conditions, $bind);
  return $result > 0 ? true : false;
}

方法2

/**
* 批量更新商品销量
* @param $params
* @return bool|int
* @throws \yii\db\Exception
*/
public function batchUpdateSalesNum($params)
{
  if (count($params) == 0 || !is_array($params)) {
    return false;
  }
  $sql = '';
  foreach ($params as $key => $value) {
    $sql .= 'UPDATE `morefun`.`mbb_goods` SET `sale_num` = `sale_num` -' . $value['amount'] . ' WHERE `id` =' . $value['goods_id'] . ';';
  }
  $result = Yii::$app->db->createCommand($sql)->execute();
  return $result == 1 ? true : false;
}

批量插入

/**
* 批量插入
* @param $params
* @return int
* @throws \yii\db\Exception
*/
public function batchAddShopClassConn($params)
{
  $connection = Yii::$app->db;
  $queryBuilder = $connection->queryBuilder;
  /*$sql = $queryBuilder->batchInsert('user', ['name', 'age'], [
    ['Tom', 30],
    ['Jane', 20],
    ['Linda', 25],
  ]);*/
  $sql = $queryBuilder->batchInsert(shopClassConn::tableName(),
    ['shop_id', 'class_id'], $params);
  return $connection->createCommand($sql)->execute();
}

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

PHP 相关文章推荐
在同一窗体中使用PHP来处理多个提交任务
Oct 09 PHP
桌面中心(一)创建数据库
Oct 09 PHP
PHP生成月历代码
Jun 14 PHP
PHP 防注入函数(格式化数据)
Aug 08 PHP
PHP中字符安全过滤函数使用小结
Feb 25 PHP
PHP中的随机性 你觉得自己幸运吗?
Jan 22 PHP
PHP的Laravel框架中使用消息队列queue及异步队列的方法
Mar 21 PHP
PHP模板引擎Smarty之配置文件在模板变量中的使用方法示例
Apr 11 PHP
Yii框架数据模型的验证规则rules()被执行的方法
Dec 02 PHP
php 使用curl模拟ip和来源进行访问的实现方法
May 02 PHP
PHP fopen函数用法实例讲解
Feb 15 PHP
thinkphp5框架前后端分离项目实现分页功能的方法分析
Oct 08 PHP
详解关于php的xdebug配置(编辑器vscode)
Jan 29 #PHP
PDO::inTransaction讲解
Jan 28 #PHP
PDO::getAvailableDrivers讲解
Jan 28 #PHP
PDO::getAttribute讲解
Jan 28 #PHP
PDO::exec讲解
Jan 28 #PHP
PDO::errorInfo讲解
Jan 28 #PHP
PDO::errorCode讲解
Jan 28 #PHP
You might like
php处理json时中文问题的解决方法
2011/04/12 PHP
phpinfo无法显示的原因及解决办法
2019/02/15 PHP
javascript firefox不显示本地预览图片问题的解决方法
2008/11/12 Javascript
JavaScript DOM学习第六章 表单实例
2010/02/19 Javascript
JavaScript中String和StringBuffer的速度之争
2010/04/01 Javascript
IE关闭时判断及AJAX注销案例学习
2013/02/18 Javascript
js调用图片隐藏&显示实现代码
2013/09/13 Javascript
Mac OS X 系统下安装和部署Egret引擎开发环境
2014/09/03 Javascript
JavaScript实现动态创建CSS样式规则方案
2014/09/06 Javascript
js实现ifram取父窗口URL地址的方法
2015/02/09 Javascript
js实现Select列表内容自动滚动效果代码
2015/08/20 Javascript
Web开发必知Javascript技巧大全
2016/02/23 Javascript
jQuery中each()、find()和filter()等节点操作方法详解(推荐)
2016/05/25 Javascript
JavaScript中清空数组的三种方式
2017/03/22 Javascript
JS实现颜色的10进制转化成rgba格式的方法
2017/09/04 Javascript
nuxt+axios解决前后端分离SSR的示例代码
2017/10/24 Javascript
vue 文件目录结构详解
2017/11/24 Javascript
Node.js中的不安全跳转如何防御详解
2018/10/21 Javascript
这样回答继承可能面试官更满意
2019/12/10 Javascript
python实现文件名批量替换和内容替换
2014/03/20 Python
使用Python设计一个代码统计工具
2018/04/04 Python
Python告诉你木马程序的键盘记录原理
2019/02/02 Python
Django REST 异常处理详解
2020/07/15 Python
如何让PyQt5中QWebEngineView与JavaScript交互
2020/10/21 Python
python 元组和列表的区别
2020/12/30 Python
欧洲最大的美妆零售网站:Feelunique
2017/01/14 全球购物
YSL Beauty加拿大官方商城:圣罗兰美妆加拿大
2017/05/15 全球购物
俄罗斯在线水暖商店:Perfecto.ru
2019/10/25 全球购物
优秀的自荐信要注意哪些
2014/01/03 职场文书
三下乡活动方案
2014/01/31 职场文书
运动会跳远广播稿
2014/02/04 职场文书
创业融资计划书
2014/04/25 职场文书
初中军训感言
2015/08/01 职场文书
生活委员竞选稿
2015/11/21 职场文书
小学生安全教育心得体会
2016/01/15 职场文书
Android中View.post和Handler.post的关系
2022/06/05 Java/Android