Thinkphp 不支持事务嵌套的解决方案,TP嵌套事务
kevin.Zhu 发布于:2014-2-26 14:14 分类:Php 有 20 人浏览,获得评论 0 条
Thinkphp 不支持事务嵌套的解决方案,TP嵌套事务
TP大家应该比较熟悉,不过强大并不支持事务嵌套,不多废话直接上代码
修改ThinkPHP\Library\Think\Model.class.php,主要修改startTrans() ,rollback(),commit() 这三个方法 具体方法如下:
1 在protected $methods 后加入(大约在63行)
/**
* 启动事务
* @access public
* @return void
*/
public function startTrans() {
++$this->transactions;
if ($this->transactions == 1){
$this->commit();
$this->db->startTrans();
}
return ;
}
/**
* 提交事务
* @access public
* @return boolean
*/
public function commit() {
if($this->transactions == 1){
$this->db->commit();
}
--$this->transactions;
}
/**
* 事务回滚
* @access public
* @return boolean
*/
public function rollback() {
if($this->transactions == 1){
$this->transactions = 0;
return $this->db->rollback();
}
--$this->transactions;
}