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中,文件上传
Dec 06 PHP
jq的get传参数在utf-8中乱码问题的解决php版
Jul 23 PHP
php图片处理:加水印、缩略图的实现(自定义函数:watermark、thumbnail)
Dec 02 PHP
PHP中基于ts与nts版本- vc6和vc9编译版本的区别详解
Apr 26 PHP
ThinkPHP后台首页index使用frameset时的注意事项分析
Aug 22 PHP
Yii的CDbCriteria查询条件用法实例
Dec 04 PHP
PHP+Ajax实时自动检测是否联网的方法
Jul 01 PHP
CodeIgniter 完美解决URL含有中文字符串
May 13 PHP
PHP+JS实现的商品秒杀倒计时用法示例
Nov 15 PHP
Yii框架应用组件用法实例分析
May 15 PHP
PHP实现递归的三种方法
Jul 04 PHP
PHP使用Http Post请求发送Json对象数据代码解析
Jul 16 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语言流程控制中的主动与被动
2012/11/05 PHP
用Simple Excel导出xls实现方法
2012/12/06 PHP
避免Smarty与CSS语法冲突的方法
2015/03/02 PHP
javascript对中文按照拼音排序代码
2014/08/20 Javascript
JS JQUERY实现滚动条自动滚到底的方法
2015/01/09 Javascript
JQuery中attr方法和removeAttr方法用法实例
2015/05/18 Javascript
学习Bootstrap组件之下拉菜单
2015/07/28 Javascript
网页中JS函数自动执行常用三种方法
2016/03/30 Javascript
基于jQuery实现仿QQ空间送礼物功能代码
2016/05/24 Javascript
简单了解JavaScript操作XPath的一些基本方法
2016/06/03 Javascript
JavaScript箭头(arrow)函数详解
2017/06/04 Javascript
JS排序算法之冒泡排序,选择排序与插入排序实例分析
2017/12/13 Javascript
关于express与koa的使用对比详解
2018/01/25 Javascript
Angular利用trackBy提升性能的方法
2018/01/26 Javascript
在Vue项目中使用snapshot测试的具体使用
2019/04/16 Javascript
浅谈layui 数据表格前后台传值的问题
2019/09/12 Javascript
基于leaflet.js实现修改地图主题样式的流程分析
2020/05/15 Javascript
[45:50]完美世界DOTA2联赛PWL S3 CPG vs Forest 第二场 12.16
2020/12/17 DOTA
python安装教程
2018/02/28 Python
Python发送邮件功能示例【使用QQ邮箱】
2018/12/04 Python
python+opencv打开摄像头,保存视频、拍照功能的实现方法
2019/01/08 Python
Python3按一定数据位数格式处理bin文件的方法
2019/01/24 Python
Python面向对象程序设计示例小结
2019/01/30 Python
详解python uiautomator2 watcher的使用方法
2019/09/09 Python
Python + opencv对拍照得到的图片进行背景去除的实现方法
2020/11/18 Python
解决margin 外边距合并问题
2019/07/03 HTML / CSS
Tory Burch美国官方网站:美国时尚生活品牌
2016/08/01 全球购物
《再见了,亲人》教学反思
2014/02/26 职场文书
大学生毕业求职信
2014/06/12 职场文书
车辆转让协议书
2014/09/24 职场文书
党员个人剖析材料
2014/09/30 职场文书
追悼词范文大全
2015/06/23 职场文书
Mysql 如何批量插入数据
2021/04/06 MySQL
python pyhs2 的安装操作
2021/04/07 Python
什么是Python装饰器?如何定义和使用?
2022/04/11 Python
源码安装apache脚本部署过程详解
2022/09/23 Servers