需要修改三个文件
1、Library/Think/Model.class.php
代码如下,第1501行注释掉就好
/**
* 启动事务
* @access public
* @return void
*/
public function startTrans() {
//$this->commit();
$this->db->startTrans();
return ;
}2、Library/Think/Db/Driver.class.php代码如下:
/**
* 启动事务
* @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;
}3、Library/Think/Db/Lite.class.php代码如下:
/**
* 启动事务
* @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;
} 