Yii框架是支持数据库事务处理的,关于事务,这里就不多说了,想要了解的读者可以参看本站文章:
在项目中遇到批量删除的地方一般会使用到事务,下面列举一个用法实例与大家分享。
$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引擎不支持事务处理,所以如上代码不会达到预想的目的。