子表保存后事务不回滚,主表还是有一条数据,求解,谢谢!
$t = \Yii::$app->db->beginTransaction();
try{
if($orderModel->save()){
...
if(!$re){
throw new Exception('错误信息');
}
...
}
$t->commit();
}catch(Excetption $e){
$t->rollback();
throw new Exception($e->getMessage());
}
还有看下自己的表的存储引擎是不是InnoDB
2 回答2.5k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
1 回答857 阅读✓ 已解决
2 回答547 阅读✓ 已解决
945 阅读
2 回答577 阅读
1 回答693 阅读
你的代码逻辑有问题,最终都会调用commit
你应该保证当
$transaction->rollback()
执行之后跳出执行下面的代码