加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – Codeigniter交易

发布时间:2020-12-13 16:20:46 所属栏目:PHP教程 来源:网络整理
导读:codeIgniter中的事务如何工作?我可以在交易后停止并互相启动吗? 看看我的例子 $this-db-trans_begin();$a = 'UPDATE ......'; RETURN TRUE$b = 'INSERT INTO......'; RETURN FALSE$this-db-trans_rollback(); // I tried $this-db-trans_off();var_dump( $
codeIgniter中的事务如何工作?我可以在交易后停止并互相启动吗?

看看我的例子

$this->db->trans_begin();

$a = 'UPDATE ......'; RETURN TRUE
$b = 'INSERT INTO......'; RETURN FALSE

$this->db->trans_rollback(); // I tried $this->db->trans_off();

var_dump( $this->db->trans_status() );

$this->db->trans_begin();

if ( $this->db->trans_status() === FALSE  ) {
   $this->db->trans_rollback();
} else {    
   $this->db->trans_commit();    
}

我的第一个事务将始终返回FALSE(即使我确实需要回滚它),现在我需要关闭该事务并需要启动另一个事务.

问题在于$this-> db-> trans_status(),它总是在第二个事务上返回FALSE(即使在$this-> db-> trans_rollback()或trans_off()之后).

我究竟做错了什么 ?请帮我.

I am using mySql as underlying database.

解决方法

现在可以手动设置trans_status了

$this->db->trans_begin();

$a = 'UPDATE ......'; RETURN TRUE
$b = 'INSERT INTO......'; RETURN FALSE

$this->db->trans_rollback(); //First transaction ends it will return FALSE always(in my case)

$this->db->_trans_status = TRUE; // setting the trans_status manually,so it will ignore previous attempts 

$this->db->trans_begin();


//other operations ..


if ( $this->db->trans_status() === FALSE  ) {
   $this->db->trans_rollback();
} else {    
   $this->db->trans_commit();    
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读