2013-08-22 32 views
0

我在codeigniter中使用SQL事務。 根據文檔,手動交易按照以下方式完成。使用die/exit/return 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中放置死/退出語句?如果我想返回false,取決於SQL1。在返回false之前是否需要放置$ this-> db-> trans_rollback()?這樣做的最佳做法是什麼?

回答

0

這取決於你想達到什麼。如果你想要你的SQL1執行,你應該做trans_commit()然後返回FALSE。所以這一切都取決於你的網站的邏輯。

無論如何,通常在結束之前它應該是trans_commit()或trans_rollback()。