最近有用 Yii + SQLite 进行一个应用的开发,但在插入大量数据的时候非常缓慢。究其原因,大约就是在每插入一个数据的时候就会有一次 IO 的操作,所以在这个时候引入事务处理就很有必要了,而且也可以保证数据的一致性。
那么,如何在 Yii 应用中引入事务处理呢?
$transaction = Yii::app()->db->beginTransaction(); //创建事务 // 将需要事务处理的操作放进try里 try { $a = XXX::model()->findByPk(X); $a->x = 1; $a->update(); $b = YYY::model()->findByPk(Y); $b->y = 2; $b->update(); $transaction->commit(); //提交事务会真正的执行数据库操作 } catch (Exception $e) { $transaction->rollback(); //如果操作失败, 数据回滚 }