Yii2.0 批量更新以及批量插入

12 篇文章 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();
    }


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值