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程序员编程注意事项
Apr 10 PHP
php max_execution_time执行时间问题
Jul 17 PHP
那些年一起学习的PHP(三)
Mar 22 PHP
PHP 5.5 创建和验证哈希最简单的方法详解
Nov 07 PHP
php函数指定默认值方法的小例子
Dec 04 PHP
yii框架通过控制台命令创建定时任务示例
Apr 30 PHP
ThinkPHP之M方法实例详解
Jun 20 PHP
php表单提交实例讲解
Nov 12 PHP
php安全配置记录和常见错误梳理(总结)
Mar 28 PHP
AJAX的使用方法详解
Apr 29 PHP
PHP空值检测函数与方法汇总
Nov 19 PHP
在laravel5.2中实现点击用户头像更改头像的方法
Oct 14 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 setTime 设置当前时间的代码
2012/08/27 PHP
PHP可变函数的使用详解
2013/06/14 PHP
PHP5.2中PDO的简单使用方法
2016/03/25 PHP
PHP简单获取多个checkbox值的方法
2016/06/13 PHP
PHP jpgraph库的配置及生成统计图表:折线图、柱状图、饼状图
2017/05/15 PHP
基于php编程规范(详解)
2017/08/17 PHP
javascript基础的动画教程,直观易懂
2007/01/10 Javascript
网络图片延迟加载实现代码 超越jquery控件
2010/03/27 Javascript
jQuery输入城市查看地图使用介绍
2013/05/08 Javascript
jquery验证邮箱格式并显示提交按钮
2015/11/07 Javascript
jquery实现图片切换代码
2016/10/13 Javascript
浅谈js原生拖放
2016/11/21 Javascript
jQuery延迟执行的实现方法
2016/12/21 Javascript
Vue学习笔记进阶篇之单元素过度
2017/07/19 Javascript
JavaScript基于面向对象实现的猜拳游戏
2018/01/03 Javascript
解决vue的变量在settimeout内部效果失效的问题
2018/08/30 Javascript
jQuery实现点击滚动到指定元素上的方法分析
2020/03/19 jQuery
JS图片懒加载技术实现过程解析
2020/07/27 Javascript
查找Vue中下标的操作(some和findindex)
2020/08/12 Javascript
Python 不同对象比较大小示例探讨
2014/08/21 Python
Python中数组,列表:冒号的灵活用法介绍(np数组,列表倒序)
2018/04/18 Python
python smtplib模块实现发送邮件带附件sendmail
2018/05/22 Python
python opencv3实现人脸识别(windows)
2018/05/25 Python
在python中按照特定顺序访问字典的方法详解
2018/12/14 Python
Django使用中间键实现csrf认证详解
2019/07/22 Python
用Python解数独的方法示例
2019/10/24 Python
Python selenium 加载并保存QQ群成员,去除其群主、管理员信息的示例代码
2020/05/28 Python
如何用 Python 处理不平衡数据集
2021/01/04 Python
HTML5 Video/Audio播放本地文件示例介绍
2013/11/18 HTML / CSS
【HTML5】Canvas绘制简单图片教程
2016/05/13 HTML / CSS
高品质和独特的产品世界:Creations and Collections
2018/01/07 全球购物
渗透攻击的测试步骤
2014/06/07 面试题
若干个Java基础面试题
2015/05/19 面试题
自荐信格式写作方法有哪些呢
2013/11/20 职场文书
节能环保演讲稿
2014/08/28 职场文书
医院领导班子四风问题对照检查材料
2014/10/26 职场文书