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版(5)
Oct 09 PHP
Zend Studio 无法启动的问题解决方法
Dec 04 PHP
PHP文件上传原理简单分析
May 29 PHP
php和数据库结合的一个简单的web实例 代码分析 (php初学者)
Jul 28 PHP
深入PHP中慎用双等于(==)的详解
Jun 06 PHP
PHP与javascript实现变量交互的示例代码
Jul 23 PHP
php中magic_quotes_gpc对unserialize的影响分析
Dec 16 PHP
使用正则去除php代码中的注释方法
Nov 03 PHP
微信 getAccessToken方法详解及实例
Nov 23 PHP
PHP编辑器PhpStrom运行缓慢问题
Feb 21 PHP
thinkPHP实现基于ajax的评论回复功能
Jun 22 PHP
php使用pthreads v3多线程实现抓取新浪新闻信息操作示例
Feb 21 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
完美解决dedecms中的[html][/html]和[code][/code]问题
2007/03/20 PHP
FleaPHP的安全设置方法
2008/09/15 PHP
PHP 如何获取二维数组中某个key的集合
2014/06/03 PHP
Yii中CGridView实现批量删除的方法
2015/12/28 PHP
php+jquery+html实现点击不刷新加载更多的实例代码
2016/08/12 PHP
javascript 从if else 到 switch case 再到抽象
2010/07/17 Javascript
JavaScript常用全局属性与方法记录积累
2013/07/03 Javascript
浅析onsubmit校验表单时利用ajax的return false无效问题
2013/07/10 Javascript
JQuery插件iScroll实现下拉刷新,滚动翻页特效
2014/06/22 Javascript
javascript弹出页面回传值的方法
2015/01/28 Javascript
Angularjs 制作购物车功能实例代码
2016/09/14 Javascript
JS组件系列之MVVM组件 vue 30分钟搞定前端增删改查
2017/04/28 Javascript
Angularjs按需查询实例代码
2017/10/30 Javascript
浅谈Vue 数据响应式原理
2018/05/07 Javascript
使用element-ui table expand展开行实现手风琴效果
2019/03/15 Javascript
基于JavaScript伪随机正态分布代码实例
2019/11/07 Javascript
ES2020 已定稿,真实场景案例分析
2020/05/25 Javascript
[01:07:41]IG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python字符串替换示例
2014/04/24 Python
详解Python的collections模块中的deque双端队列结构
2016/07/07 Python
Python图片裁剪实例代码(如头像裁剪)
2017/06/21 Python
使用Python操作excel文件的实例代码
2017/10/15 Python
python 读取目录下csv文件并绘制曲线v111的方法
2018/07/06 Python
Django REST framework视图的用法
2019/01/16 Python
基于wxPython的GUI实现输入对话框(2)
2019/02/27 Python
Python 多线程共享变量的实现示例
2020/04/17 Python
详解Pycharm第三方库的安装及使用方法
2020/12/29 Python
泰国健康和美容服务预订网站:GoWabi
2019/06/03 全球购物
英国玛莎百货新西兰:Marks & Spencer New Zealand
2019/07/21 全球购物
励志演讲稿500字
2014/08/21 职场文书
农村党员对照检查材料
2014/09/24 职场文书
高校自主招生教师推荐信
2015/03/23 职场文书
通讯稿格式及范文
2015/07/22 职场文书
SQL Server #{}可以防止SQL注入
2022/05/11 SQL Server
Android开发手册自定义Switch开关按钮控件
2022/06/10 Java/Android
Python 操作pdf pdfplumber读取PDF写入Exce
2022/08/14 Python