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 相关文章推荐
消息持续发送的完整例子
Oct 09 PHP
一个比较简单的PHP 分页分组类
Dec 10 PHP
简单PHP上传图片、删除图片实现代码
May 12 PHP
php设计模式 Command(命令模式)
Jun 26 PHP
新浪SAE云平台下使用codeigniter的数据库配置
Jun 12 PHP
ThinkPHP中RBAC类的四种用法分析
Nov 24 PHP
PHP编写daemon process详解及实例代码
Sep 30 PHP
PHP设置Cookie的HTTPONLY属性方法
Feb 09 PHP
php基于ob_start(ob_gzhandler)实现网页压缩功能的方法
Feb 18 PHP
PHP单例模式简单用法示例
Jun 23 PHP
详解PHP字符串替换str_replace()函数四种用法
Oct 13 PHP
laravel利用中间件防止未登录用户直接访问后台的方法
Sep 30 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中几个可以提高运行效率的代码写法、技巧分享
2014/08/21 PHP
PHP+jquery+ajax实现即时聊天功能实例
2014/12/23 PHP
php中array_multisort对多维数组排序的方法
2020/06/21 PHP
php中array_unshift()修改数组key注意事项分析
2016/05/16 PHP
PHP实现简单ajax Loading加载功能示例
2016/12/28 PHP
php文件上传类的分享
2017/07/06 PHP
PHP7导出Excel报ERR_EMPTY_RESPONSE解决方法
2019/04/16 PHP
Yii框架页面渲染操作实例详解
2019/07/19 PHP
js判断输入是否为正整数、浮点数等数字的函数代码
2010/11/17 Javascript
JavaScript实现快速排序(自已编写)
2012/12/19 Javascript
JavaScript:Div层拖动效果实例代码
2013/08/06 Javascript
javascript表单验证和Window详解
2014/12/11 Javascript
javascript中setInterval的用法
2015/07/19 Javascript
深入浅析JavaScript中的作用域和上下文
2016/03/26 Javascript
BootStrap扔进Django里的方法详解
2016/05/13 Javascript
Vue.js每天必学之指令系统与自定义指令
2016/09/07 Javascript
js数字舍入误差以及解决方法(必看篇)
2017/02/28 Javascript
jQuery extend()详解及简单实例
2017/05/06 jQuery
js使用highlight.js高亮你的代码
2017/08/18 Javascript
详解vue 项目白屏解决方案
2018/10/31 Javascript
layui 弹出删除确认界面的实例
2019/09/06 Javascript
Python获取某一天是星期几的方法示例
2017/01/17 Python
Python实现字典按key或者value进行排序操作示例【sorted】
2019/05/03 Python
Python异步操作MySQL示例【使用aiomysql】
2019/05/16 Python
Python空间数据处理之GDAL读写遥感图像
2019/08/01 Python
python异常处理和日志处理方式
2019/12/24 Python
pytorch::Dataloader中的迭代器和生成器应用详解
2020/01/03 Python
小白教你PyCharm从下载到安装再到科学使用PyCharm2020最新激活码
2020/09/25 Python
常用UNIX 命令(Linux的常用命令)
2013/07/10 面试题
班长演讲稿范文
2014/04/24 职场文书
机械设计及其自动化专业求职信
2014/06/09 职场文书
2016三严三实专题教育活动心得体会
2016/01/06 职场文书
祝福语集锦:给妹妹结婚的祝福语
2019/12/18 职场文书
Django如何与Ajax交互
2021/04/29 Python
GoLang中生成UUID唯一标识的实现
2021/05/08 Golang
springboot中的pom文件 project报错问题
2022/01/18 Java/Android