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


using die/exit/return inside codeigniter sql transaction

我在代码点火器中使用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()吗?这样做的最佳做法是什么?

这取决于您想要实现的目标。如果您希望您的SQL1执行,您应该执行trans_commit(),然后返回FALSE。所以这完全取决于你网站的逻辑。

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