php yii2 批量导入数据,Yii2.0实现的批量更新及批量插入功能示例

本文实例讲述了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程序设计有所帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值