本文實例講述了Yii2.0實現的批量更新及批量插入功能。分享給大家供大家參考,具體如下:
批量更新
方法1
/**
* 批量更新循環(huán)周期
* @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相關內容感興趣的讀者可查看本站專題:《Yii框架入門及常用技巧總結》、《php優(yōu)秀開發(fā)框架總結》、《smarty模板入門基礎教程》、《php面向對象程序設計入門教程》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》
希望本文所述對大家基于Yii框架的PHP程序設計有所幫助。
您可能感興趣的文章:- Yii2 批量插入、更新數據實例
- YII框架批量插入數據的方法
- Yii框架批量插入數據擴展類的簡單實現方法
- Yii2如何批量添加數據
- 淺析Yii2 gridview實現批量刪除教程
- yii2使用GridView實現數據全選及批量刪除按鈕示例
- Yii實現復選框批量操作實例代碼
- JavaScript中全選、全不選、反選、無刷新刪除、批量刪除、即點即改入庫(在yii框架中操作)的代碼分享
- Yii中CGridView實現批量刪除的方法