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();
}
关于php - 代码点火器事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14825661/