一、问题起源
在MySQL的官方文档中有明确的说明不支持嵌套事务:
复制代码 代码如下:
Transactions cannot be nested. This is a consequence of the implicit commit performed for any current transaction when you issue a START TRANSACTION statement or one of its synonyms.
复制代码 代码如下:
当执行一个START TRANSACTION指令时,会隐式的执行一个commit操作。
友情提示,这两个框架的函数和变量的命名都比较的直观,虽然看起来很长,但是都是通过命名就能直接得知这个函数或者变量的意思,所以不要一看到那么一大坨就被吓到了 :)
二、doctrine的解决方案
首先来看下在doctrine中创建事务的代码(干掉了不相关的代码):
复制代码 代码如下: