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 相关文章推荐
利用static实现表格的颜色隔行显示的代码
Sep 02 PHP
PHP 输出简单动态WAP页面
Jun 09 PHP
控制PHP的输出:缓存并压缩动态页面
Jun 11 PHP
PHP 转义使用详解
Jul 15 PHP
php代码审计比较有意思的例子
May 07 PHP
YII中assets的使用示例
Jul 31 PHP
php实现最简单的MVC框架实例教程
Sep 08 PHP
php一个解析字符串排列数组的方法
May 12 PHP
php curl优化下载微信头像的方法总结
Sep 07 PHP
PHP赋值的内部是如何跑的详解
Jan 13 PHP
PHP设计模式之观察者模式定义与用法分析
Apr 04 PHP
PHP中->和=>的含义及使用示例解析
Aug 06 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中实现xml与mysql数据相互转换的方法
2014/12/25 PHP
php简单备份与还原MySql的方法
2016/05/09 PHP
innertext , insertadjacentelement , insertadjacenthtml , insertadjacenttext 等区别
2007/06/29 Javascript
JavaScript 继承的实现
2009/07/09 Javascript
JQuery筛选器全系列介绍
2013/08/27 Javascript
使用jquery.validate自定义方法实现"手机号码或者固话至少填写一个"的逻辑验证
2014/09/01 Javascript
jQuery中is()方法用法实例
2015/01/06 Javascript
JS组件Bootstrap dropdown组件扩展hover事件
2016/04/17 Javascript
关于javascript原型的修改与重写(覆盖)差别详解
2016/08/31 Javascript
javascript稀疏数组(sparse array)和密集数组用法分析
2016/12/28 Javascript
jQuery利用FormData上传文件实现批量上传
2018/12/04 jQuery
js删除数组中某几项的方法总结
2019/01/16 Javascript
利用JS判断元素是否为数组的方法示例
2021/01/08 Javascript
[02:47]2018年度DOTA2最佳辅助位选手4号位-完美盛典
2018/12/17 DOTA
Python可变参数*args和**kwargs用法实例小结
2018/04/27 Python
Tensorflow 训练自己的数据集将数据直接导入到内存
2018/06/19 Python
Python定义二叉树及4种遍历方法实例详解
2018/07/05 Python
python监测当前联网状态并连接的实例
2018/12/18 Python
Python 50行爬虫抓取并处理图灵书目过程详解
2019/09/20 Python
Python中低维数组填充高维数组的实现
2019/12/02 Python
python 遗传算法求函数极值的实现代码
2020/02/11 Python
selenium+超级鹰实现模拟登录12306
2021/01/24 Python
加拿大在线隐形眼镜专家:PerfectLens.ca
2016/11/19 全球购物
加拿大高尔夫超市:Golf Town
2018/01/12 全球购物
英国布鲁姆精品店:Bloom Boutique
2018/03/01 全球购物
英国领先的电子、技术和办公用品购物网站:Ebuyer
2018/04/04 全球购物
会计与审计专业大专生求职信
2013/10/03 职场文书
简历里的自我评价
2014/01/31 职场文书
幼儿园毕业寄语
2014/04/03 职场文书
健康教育评估方案
2014/05/25 职场文书
2015年南京大屠杀纪念日活动总结
2015/03/24 职场文书
2015年化妆品销售工作总结
2015/05/11 职场文书
2016庆祝教师节新闻稿
2015/11/25 职场文书
远程教育学习心得体会
2016/01/23 职场文书
Mysql数据库值的添加、修改、删除及清空操作实例
2021/06/20 MySQL
Windows Server 修改远程桌面端口的实现
2022/06/25 Servers