gpt4 book ai didi

php - Yii 事务不回滚

转载 作者:行者123 更新时间:2023-11-29 01:06:12 24 4
gpt4 key购买 nike

Yii 事务在下面的示例代码中不回滚,记录保存在数据库中:

        $transaction = Yii::app()->db->beginTransaction();
$mode_1 = new Orders;
$mode_1->id_order = 3333;
$mode_1->AWB = 3333;
$mode_2 = new Orders;
$mode_2->id_order = 4444;
$mode_2->AWB = 4444;
$mode_2->save();
$mode_1->save();
$transaction->rollback();

有什么想法吗? .. 谢谢

最佳答案

使用事务的正确方法是将它们与 try-catch 结构一起使用。在您的示例中,我认为问题的出现是因为您没有执行提交($transaction->commit())。

$transaction = Yii::app()->db->beginTransaction();
try {
if (!$model->save()) {
throw new Exception('Model cannot be saved.');
}
if (!$anothermodel->save()) {
throw new Exception('Anothermodel cannot be saved.');
}

$transaction->commit();
} catch (Exception $e) {
$transaction->rollback();
}

编辑: $model->save() 不会抛出异常,所以你需要抛出它!

关于php - Yii 事务不回滚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19362747/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com