0

我在 codeigniter 中使用 SQL 事务。根据文档,手动交易如下所示。

$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() 吗?这样做的最佳做法是什么?

4

1 回答 1

0

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

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

于 2013-08-22T08:34:27.883 回答