php - 代码点火器事务

标签 php mysql codeigniter transactions

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/

相关文章:

php - Laravel 5 Eloquent : How to get raw sql that is being executed?(绑定(bind)数据)

php - 将 3 个 SQL SELECT 合并到一条语句中

jquery - 为什么 responseText 返回空白?

php - 在 codeigniter 中注册

php - 如何连接到 XAMPP 服务器?我收到错误消息 Fatal error : Array callback has to contain indices 0 and 1

javascript - 如何在 html (php) 文件中加载 javascript 文件

PHP MYSQL while 循环直到与 break 和 sum 相同的值,而不是与下一个值相同

php - CodeIgniter REST API 库 Ajax PUT 抛出 403 禁止

php - Codeigniter $this->db->order_by (' ' ,'desc' ) 结果不完整

PHPUnit成功回调函数?