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 AJAX实例根据邮编自动完成地址信息
Nov 23 PHP
php提示undefined index的几种解决方法
May 21 PHP
discuz目录文件资料汇总
Dec 30 PHP
PHP自带方法验证邮箱是否存在
Feb 01 PHP
ECSHOP完美解决Deprecated: preg_replace()报错的问题
May 17 PHP
Yii框架弹出窗口组件CJuiDialog用法分析
Jan 07 PHP
PHP+AjaxForm异步带进度条上传文件实例代码
Aug 14 PHP
php实现姓名根据首字母排序的类与方法(实例代码)
May 16 PHP
PHP实现的AES加密、解密封装类与用法示例
Aug 02 PHP
php实现二叉树中和为某一值的路径方法
Oct 14 PHP
Laravel框架搜索分页功能示例
Feb 01 PHP
记Laravel调用Gin接口调用formData上传文件的实现方法
Dec 12 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网上调查系统
2006/10/09 PHP
用PHP控制用户的浏览器--ob*函数的使用说明
2007/03/16 PHP
php代码审计比较有意思的例子
2014/05/07 PHP
简单解析PHP程序的运行流程
2016/06/23 PHP
php编程实现简单的网页版计算器功能示例
2017/04/26 PHP
iframe里的页面禁止右键事件的方法
2014/06/10 Javascript
jquery通过load获取文件的内容并跳到锚点的方法
2015/01/29 Javascript
jQuery计算文本框字数及限制文本框字数的方法
2016/03/01 Javascript
JavaScript的六种继承方式(推荐)
2017/06/26 Javascript
vue 过滤器filter实例详解
2018/03/14 Javascript
详解vue中localStorage的使用方法
2018/11/22 Javascript
JS手写一个自定义Promise操作示例
2020/03/16 Javascript
从零学python系列之新版本导入httplib模块报ImportError解决方案
2014/05/23 Python
python实现的udp协议Server和Client代码实例
2014/06/04 Python
Python实现动态添加类的属性或成员函数的解决方法
2014/07/16 Python
python中的hashlib和base64加密模块使用实例
2014/09/02 Python
python 网络爬虫初级实现代码
2016/02/27 Python
Python 基础教程之闭包的使用方法
2017/09/29 Python
CentOS7下python3.7.0安装教程
2018/07/30 Python
flask-restful使用总结
2018/12/04 Python
基于Tensorflow的MNIST手写数字识别分类
2020/06/17 Python
Python如何对XML 解析
2020/06/28 Python
Python调用jar包方法实现过程解析
2020/08/11 Python
基于OpenCV的网络实时视频流传输的实现
2020/11/15 Python
python多线程爬取西刺代理的示例代码
2021/01/30 Python
css3的@media属性实现页面响应式布局示例代码
2014/02/10 HTML / CSS
用纯css3实现的图片放大镜特效效果非常不错
2014/09/02 HTML / CSS
SIDESTEP荷兰:在线购买鞋子
2019/11/18 全球购物
如何设置Java的运行环境
2013/04/05 面试题
小学数学课后反思
2014/04/23 职场文书
高中生评语大全
2014/04/25 职场文书
《长征》教学反思
2014/04/27 职场文书
ktv周年庆活动方案
2014/08/18 职场文书
python 如何获取页面所有a标签下href的值
2021/05/06 Python
SpringBoot快速入门详解
2021/07/21 Java/Android
使用HttpSessionListener监听器实战
2022/03/17 Java/Android