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 相关文章推荐
相对路径转化成绝对路径
Apr 10 PHP
PHP之变量、常量学习笔记
Mar 27 PHP
PHP memcache扩展的三种安装方法
Apr 26 PHP
让PHP以ROOT权限执行系统命令的方法
Feb 10 PHP
php实现Linux服务器木马排查及加固功能
Dec 29 PHP
Symfony2学习笔记之系统路由详解
Mar 17 PHP
php自定义函数实现二维数组排序功能
Jul 20 PHP
PHP 7.1新特性的汇总介绍
Dec 16 PHP
php输出图像的方法实例分析
Feb 16 PHP
PHP递归删除多维数组中的某个值
Apr 17 PHP
php 浮点数比较方法详解
May 05 PHP
使用PHP开发留言板功能
Nov 19 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实现jQuery扩展函数
2009/10/30 PHP
PHP实现图片自动清理的方法
2015/07/08 PHP
PHP GD库相关图像生成和处理函数小结
2016/09/30 PHP
laravel实现前后台路由分离的方法
2019/10/13 PHP
让任务管理器中的CPU跳舞的js代码
2008/11/01 Javascript
JavaScript学习笔记之获取当前目录的实现代码
2010/12/14 Javascript
jquery如何实现锚点链接之间的平滑滚动
2013/12/02 Javascript
JS验证邮箱格式是否正确的代码
2013/12/05 Javascript
jquery判断单选按钮radio是否选中的方法
2015/05/05 Javascript
原生JS实现简单放大镜效果
2017/02/08 Javascript
Vue响应式添加、修改数组和对象的值
2017/03/20 Javascript
使用JS在浏览器中判断当前网络连接状态的几种方法
2017/05/05 Javascript
详解VueJs前后端分离跨域问题
2017/05/24 Javascript
vuex的使用及持久化state的方式详解
2018/01/23 Javascript
bootstrap 点击空白处popover弹出框隐藏实例
2018/01/24 Javascript
Vue 页面跳转不用router-link的实现代码
2018/04/12 Javascript
微信小程序实现发送模板消息功能示例【通过openid推送消息给用户】
2019/05/05 Javascript
改变layer confirm弹窗按钮的颜色方法
2019/09/12 Javascript
Vuex模块化应用实践示例
2020/02/03 Javascript
探究一道价值25k的蚂蚁金服异步串行面试题
2020/08/21 Javascript
[04:39]显微镜下的DOTA2第十三期—Pis卡尔个人秀
2014/04/04 DOTA
Python小工具之消耗系统指定大小内存的方法
2018/12/03 Python
python学生管理系统开发
2019/01/30 Python
Python实现蒙特卡洛算法小实验过程详解
2019/07/12 Python
Python操作Sonqube API获取检测结果并打印过程解析
2019/11/27 Python
使用python写一个自动浏览文章的脚本实例
2019/12/05 Python
Python字典生成式、集合生成式、生成器用法实例分析
2020/01/07 Python
python uuid生成唯一id或str的最简单案例
2021/01/13 Python
运动会开幕式邀请函
2014/01/22 职场文书
聘任书模板
2014/03/29 职场文书
2014党委书记四风问题对照检查材料思想汇报
2014/09/22 职场文书
2016幼儿园新学期寄语
2015/12/03 职场文书
《观潮》教学反思
2016/02/17 职场文书
创业计划之特色精品店
2019/08/12 职场文书
JS不要再到处使用绝对等于运算符了
2021/04/30 Javascript
利用Python实时获取steam特惠游戏数据
2022/06/25 Python