我正在考虑设计一个新的应用程序,并偶然发现了有关嵌套事务的一般性问题。我有一些我需要重用的对象。假设这个对象之一是
class A {
public method(){
$db->startTransaction(); // shared $db object
// .... do a lot of SQL work
$db->commitTransaction();
}
}
现在假设有第二个对象B需要调用A->方法并在发生错误时全部回滚:
class B {
public anotherMethod(){
$db->startTransaction();
$a = new A();
$a->method();
// code that throws an error
$db->rollbackTransaction();
}
}
处理此类情况的正确方法是什么?您有最佳实践吗?
答案 0 :(得分:0)
Mysql不支持嵌套交易,但您仍然可以使用保存点