ThinkPHP 3.2.3 Mysql事务嵌套支持
需要修改三个文件
1、Library/Think/Model.class.php
代码如下,第1501行注释掉就好
2、Library/Think/Db/Driver.class.php
代码如下:
3、Library/Think/Db/Lite.class.php
代码如下:
需要修改三个文件
1、Library/Think/Model.class.php
代码如下,第1501行注释掉就好
- /**
- * 启动事务
- * @access public
- * @return void
- */
- public function startTrans() {
- //$this->commit();
- $this->db->startTrans();
- return ;
- }
复制代码
代码如下:
- /**
- * 启动事务
- * @access public
- * @return void
- */
- public function startTrans() {
- $this->transTimes++;
- $this->initConnect(true);
- if ( !$this->_linkID ) return false;
- //数据rollback 支持
- if ($this->transTimes == 1) {
- $this->_linkID->beginTransaction();
- }
- return ;
- }
- /**
- * 用于非自动提交状态下面的查询提交
- * @access public
- * @return boolean
- */
- public function commit() {
- if ($this->transTimes == 1) {
- $result = $this->_linkID->commit();
- $this->transTimes = 0;
- if(!$result){
- $this->error();
- return false;
- }
- } else {
- --$this->transTimes;
- }
- return true;
- }
- /**
- * 事务回滚
- * @access public
- * @return boolean
- */
- public function rollback() {
- if ($this->transTimes == 1) {
- $result = $this->_linkID->rollback();
- $this->transTimes = 0;
- if(!$result){
- $this->error();
- return false;
- }
- } else {
- --$this->transTimes;
- }
- return true;
- }
复制代码
代码如下:
- /**
- * 启动事务
- * @access public
- * @return void
- */
- public function startTrans() {
- $this->transTimes++;
- $this->initConnect(true);
- if ( !$this->_linkID ) return false;
- //数据rollback 支持
- if ($this->transTimes == 1) {
- $this->_linkID->beginTransaction();
- }
- return ;
- }
- /**
- * 用于非自动提交状态下面的查询提交
- * @access public
- * @return boolean
- */
- public function commit() {
- if ($this->transTimes == 1) {
- $result = $this->_linkID->commit();
- $this->transTimes = 0;
- if(!$result){
- $this->error();
- return false;
- }
- } else {
- --$this->transTimes;
- }
- return true;
- }
- /**
- * 事务回滚
- * @access public
- * @return boolean
- */
- public function rollback() {
- if ($this->transTimes == 1) {
- $result = $this->_linkID->rollback();
- $this->transTimes = 0;
- if(!$result){
- $this->error();
- return false;
- }
- } else {
- --$this->transTimes;
- }
- return true;
- }