Yii框架是支持數據庫事務處理的,關於事務,這裡就不多說了,想要了解的讀者可以參看本站文章:
關於數據庫(MySQL)事務
在項目中遇到批量刪除的地方一般會使用到事務,下面列舉一個用法實例與大家分享。
<?php
$array=array(
0=>array('username'=>'phpernote.com_0','password'=>'123456'),
1=>array('username'=>'u_1','password'=>'123456'),
2=>array('username'=>'u_2','password'=>'123456')
);
$transaction=Yii::app()->db->dbConnection->beginTransaction();
//此處db代表的是定義在main.php中的數據庫連接對象db
try{
Yii::app()->db->createCommand()->insert('tbl_user',$array[0]);
Yii::app()->db->createCommand()->insert('tbl_user',$array[1]);
Yii::app()->db->createCommand()->insert('tbl_user',$array[2]);
$transaction->commit();
}catch(Exception $e){
$transaction->rollback();
}
注意:如果你使用的是MySQL數據庫,那麼表引擎必須是innodb類型的,因為MySQL數據庫的MyISAM引擎不支持事務處理,所以如上代碼不會達到預想的目的。