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引擎不支持事務處理,所以如上代碼不會達到預想的目的。