龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

CodeIgniter框架数据库事务处理的设计缺陷和解决方案(3)

时间:2014-08-01 16:27来源:网络整理 作者:网络 点击:
分享到:
问题已经很清晰了,那么解决方法想必对你来说,是多么的简单。 比如在trans_start方法中,对_trans_status 属性赋值,设置为TRUE,不理会事务外的问题。 复

问题已经很清晰了,那么解决方法想必对你来说,是多么的简单。
比如在trans_start方法中,对_trans_status 属性赋值,设置为TRUE,不理会事务外的问题。

复制代码 代码如下:

function trans_start($test_mode = FALSE)
{
 if ($this->trans_strict === FALSE)
 {
  $this->_trans_status = TRUE;    //在开始事务处理时,重新设定这个属性的值为TRUE
 }
    //2012/05/01 18:00 经过CI中文社区网友 http://codeigniter.org.cn/forums/space-uid-5721.html指正,这里修改为增加trans_strict 属性判断 ,在决定是否重设_trans_status 为好。
 if ( ! $this->trans_enabled)
 {
  return FALSE;
 }

 // When transactions are nested we only begin/commit/rollback the outermost ones
 if ($this->_trans_depth > 0)
 {
  $this->_trans_depth += 1;
  return;
 }

 $this->trans_begin($test_mode);
}

结束:

在不明白对方设计意图的情况下,不能盲目的定义对方的代码评价,不管程序作者的水平如何。比自己强,也不能盲目崇拜;比自己弱,更不能乱加指责;理解读懂设计意图,学习他人优秀的设计思路、代码风格、算法效率,这才是一个好习惯。当然codeigniter框架是优秀的。

精彩图集

赞助商链接