【发布时间】:2016-06-22 06:05:41
【问题描述】:
我使用 Yii,最近开始使用带有 try / catch 块的事务。
下面是代码现在的样子:
$dbConnection = Yii::app()->db();
try {
$transaction = $dbConnection->beginTransaction();
$dbConnection->createCommand("SELECT * from table_1")
->queryAll();
$transaction->commit();
} catch (Exception $ex) {
$transaction->rollback();
}
假设数据库出现异常(在单元测试时出现),我无法回滚,因为 PHP 因致命的$transaction undefined 错误而死。
我宁愿不要在任何地方都包含 isset() 检查.. 有没有更简单的方法来完成这项工作?
【问题讨论】:
-
Yii 文档页面上的一个示例建议在 try/catch 之外初始化 $transaction。但是现在找不到链接。
-
@kouton 如果在初始化时出现错误,那么它将使脚本崩溃..
-
为什么选择语句需要事务?
标签: php yii transactions