您的位置
主页 > 网站技术 > 数据库 > » 正文

PHP中实现MySQL嵌套事务的两种解决方案(6)

来源: 锦尚中国 点击:

        $this->pdo->rollBack();
    }
    else
    {
        --$this->transactions;
    }
}


明白了吧?只有当当前事务只有一个的时候才会真正的rollback,否则只是将计数做减一操作。这也就是为啥刚才说laravel的处理比较简单粗暴一些,在嵌套的内层里面实际上是木有真正的事务的,只有最外层一个整体的事务,虽然简单粗暴,但是也解决了在内层新建一个事务时会造成commit的问题。原理就是这个样子了,为了保持完整起见,把commit的代码也copy过来吧!

复制代码 代码如下:


public function commit()
{
    if ($this->transactions == 1) $this->pdo->commit();

    --$this->transactions;
}




首页  - 关于站长圈  - 广告服务  - 联系我们  - 关于站长圈  - 网站地图  - 版权声明