我想學習如何使用MYSQL TRANSACTIONS。如何使用codeigniter中的事務進行基於數據更改的提交和回滾?
我有用例,我有兩個表。比方說表1和表2。現在我在表1中插入一些數據,並從表中得到insert id
我想將其插入到表2中。
如果在Table1中成功插入值,並且在插入Table2值時發生任何錯誤,我希望因爲我的Table2的查詢不成功,所以也要刪除Table1中的值。
我只是想了解如何使用Codeigniter來完成這項工作。 如何根據需要COMMIT或ROLLBACK。
請幫我看一些示例代碼來理解。
更新
我還提到了笨UserGuide。但我並沒有明白Running Transactions manually
這個概念是什麼意思?正如上面提到的,我想做一些類似觸發器的事情,這是自動的,我的意思是如果我的查詢失敗了,我希望它使用Codeigniter進行ROLLBACK。
代碼:
$this->db->trans_begin();
$data = $this->Product_m->array_from_post(array('name','description'));
$this->Product_m->save($data,$id);
$pid = $this->db->insert_id();
$num_of_license = $_POST['license'];
$this->Product_m->create_product($pid,$num_of_license);
if ($this->db->trans_status() === FALSE)
{
$this->db->trans_rollback();
}
else
{
$this->db->trans_commit();
}
在這種情況下
現在我試着這樣做:
本聲明基於前面save()方法$this->Product_m->create_product($pid,$num_of_license);
插入數據,現在假設一些錯誤create_product期間發生()方法。然後我想回滾。我想刪除save()方法所做的記錄。
可能的複製(HTTP://計算器。com/questions/15224826/codeigniter-transactions) –
這不是重複他只是要求在codeigniter – Vimal
@dhruvjadia做的交易的參考那個問題,我已經提到,但它是專門關於他的代碼,我只是想了解我是如何可以以不同的方式使用它,另外我提到我想「學習」 – Rajan