Yii1.1 批量處理(新增、刪除、修改)
阿新 • • 發佈:2019-02-09
$model = new UebEbayAccountNotice();
$transaction = $model->getDbConnection()->beginTransaction();
新增
//差集,需要增加的 $addUserIdArr = array_diff($newUserIdArr,$oldUserIdArr); if (!empty($addUserIdArr)){ $addDataArr = []; foreach ($addUserIdArr as $k=>$addId){ $addDataArr[$k]['user_id'] = $addId; $addDataArr[$k]['notice_type'] = $data['notice_type']; $addDataArr[$k]['days_type'] = $data['days_type']; $addDataArr[$k]['is_active'] = $data['is_active']; $addDataArr[$k]['add_time'] = time(); } $keyArr = ['user_id','notice_type','days_type','is_active','add_time']; $flag = $model->batchInsertAll($model->tableName(),$keyArr,$addDataArr); }
刪除
//差集,需要刪除的
$delUserIdArr = array_diff($oldUserIdArr,$newUserIdArr);
if (!empty($delUserIdArr)){
$condition = 'user_id in ('.implode(",",$delUserIdArr).') and is_active='.$isactive;
$flag = $model->deleteAll($condition);
}
修改
$model->updateAll($attributes,$condition,$params); //交集,需要修改的 $updUserIdArr = array_intersect($oldUserIdArr,$newUserIdArr); if (!empty($updUserIdArr)){ $attributes = ['notice_type'=>$data['notice_type'],'days_type'=>$data['days_type'],'is_active'=>$data['is_active']]; $condition = 'user_id in ('.implode(",",$updUserIdArr).') and is_active='.$isactive; $flag = $model->updateAll($attributes,$condition); }
單個修改
$model = User::model()->findByPk($pk) $model->is_deleted = 1; $model->update(['is_deleted']); #updateByPk($pk,$attributes,$condition,$params); #$pk主鍵,可以是一個也可以是一個集合,$attributes是要修改的欄位的集合,$condition條件,$params傳入的值 $count=Admin::model()->updateByPk(1,array('username'=>'admin','password'=>'admin')); $count=Admin::model()->updateByPk(array(1,2),array('username'=>'admin','password'=>'admin'),'username=:name',array(':name'=>'張三')); #自增:updateCounters($counters,$condition,$params); array('status'=>1)代表資料庫中的admin表根據條件username='admin',查詢出的所有結果status欄位都自加1
事務
$transaction->commit();
$transaction->rollback();