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 用sock技术发送邮件的函数
Jul 21 PHP
PHP UTF8编码内的繁简转换类
Jul 20 PHP
AMFPHP php远程调用(RPC, Remote Procedure Call)工具 快速入门教程
May 10 PHP
php 随机记录mysql rand()造成CPU 100%的解决办法
May 18 PHP
解析php获取字符串的编码格式的方法(函数)
Jun 21 PHP
php对二维数组按指定键值key排序示例代码
Nov 26 PHP
PHP实现获取中英文首字母
Jun 19 PHP
PHP 表单提交及处理表单数据详解及实例
Dec 27 PHP
ThinkPHP中类的构造函数_construct()与_initialize()的区别详解
Mar 13 PHP
iis 7下安装laravel 5.4环境的方法教程
Jun 14 PHP
PHP获取ttf格式文件字体名的方法示例
Mar 06 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
Mar 26 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的sprintf函数的用法 控制浮点数格式
2014/02/14 PHP
smarty模板引擎基础知识入门
2015/03/30 PHP
Yii框架响应组件用法实例分析
2019/09/04 PHP
IE和firefox浏览器的event事件兼容性汇总
2009/12/06 Javascript
window.addEventListener来解决让一个js事件执行多个函数
2012/12/26 Javascript
js文本框输入点回车触发确定兼容IE、FF等
2013/11/19 Javascript
探讨jQuery的ajax使用场景(c#)
2013/12/03 Javascript
JavaScript bold方法入门实例(把指定文字显示为粗体)
2014/10/17 Javascript
js实现文本框选中的方法
2015/05/26 Javascript
js时钟翻牌效果实现代码分享
2020/07/31 Javascript
通过正则表达式获取url中参数的简单实现
2016/06/07 Javascript
JS实现颜色动态淡化效果
2017/03/06 Javascript
详解vue-router 2.0 常用基础知识点之router.push()
2017/05/10 Javascript
js防刷新的倒计时代码 js倒计时代码
2017/09/06 Javascript
JavaScript实现离开页面前提示功能【附jQuery实现方法】
2017/09/26 jQuery
JS兼容所有浏览器的DOMContentLoaded事件
2018/01/12 Javascript
详解angular2如何手动点击特定元素上的点击事件
2018/10/16 Javascript
python正则表达式re模块详解
2014/06/25 Python
Python字符串转换成浮点数函数分享
2015/07/24 Python
Python科学计算之NumPy入门教程
2017/01/15 Python
python 打印直角三角形,等边三角形,菱形,正方形的代码
2017/11/21 Python
详解Python3注释知识点
2019/02/19 Python
Pyqt5 实现跳转界面并关闭当前界面的方法
2019/06/19 Python
python单线程下实现多个socket并发过程详解
2019/07/27 Python
Python使用Selenium模拟浏览器自动操作功能
2020/09/08 Python
分享CSS3制作卡片式图片的方法
2016/07/08 HTML / CSS
计算机应用专业应届毕业生中文求职信范文
2013/11/29 职场文书
双方协议书
2014/04/22 职场文书
2014年创卫工作总结
2014/11/24 职场文书
介绍信范文
2015/01/31 职场文书
老龙头导游词
2015/02/11 职场文书
三行辞职书范文
2015/02/26 职场文书
Ajax 的初步实现(使用vscode+node.js+express框架)
2021/06/18 Javascript
HTML怎么设置下划线?html文字加下划线方法
2021/12/06 HTML / CSS
MySQL 开窗函数
2022/02/15 MySQL
nginx实现多geoserver服务的负载均衡
2022/05/15 Servers