在codeigniter sql事务中使用die / exit / return

时间:2013-08-22 08:12:11

标签: php codeigniter

我在codeigniter中使用SQL Transactions。 根据文档,手动交易完成如下。

$this->db->trans_begin();

$this->db->query('UPDATE ...'); // SQL 1
$this->db->query('SELECT ...'); // SQL 2
$this->db->query('SELECT ...'); // SQL 3

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

现在我的问题是会发生什么,如果我在SQL1和SQL2中放置一个die / exit语句?如果我想返回false,则取决于SQL1。我需要在返回false之前放入$ this-> db-> trans_rollback()吗?这样做的最佳做法是什么?

1 个答案:

答案 0 :(得分:0)

这取决于你想要达到的目标。如果您希望SQL1仍然执行,您应该执行trans_commit()然后返回FALSE。所以这一切都取决于你网站的逻辑。

无论如何,通常在结束之前应该是trans_commit()或trans_rollback()。