0
我需要在「產品」表中添加的產品,我也得到了高附加值產品ID,然後添加表中該產品的詳細信息「產品詳細信息」具有多種功能的笨交易
在官方笨的網頁,他們展示如何做到這一點,但沒有使用功能,例如:
$this->db->trans_start(TRUE); // Query will be rolled back
$this->db->query('AN SQL QUERY...');
$this->db->trans_complete();
我需要使用的功能,並仍保持完整,如果兩個查詢的一個出現故障,則未添加記錄,我已經準備好下面的代碼,我想知道如果以這種方式Codeigniter將能夠檢測到查詢失敗或不撤消記錄或者如果re是另一種最佳做法或其他方式。
而不是使用$ this-> db-> query('AN SQL QUERY ...');我使用的是 功能:
public function init_product()
{
$this->db->trans_begin();
$this->new_product();
$this->new_product_details();
if ($this->db->trans_status() === FALSE)
$this->db->trans_rollback();
} else {
$this->db->trans_commit();
}
}
加入本品並返回總產品ID
public function new_product()
{
$data = array(
'name' => $this->input->post('name'),
'details' => $this->input->post('details'),
'price' => $this->input->post('price')
);
$this->db->insert('products', $data);
if($this->db->affected_rows()) {
return $this->db->insert_id();
}
return false;
}
添加產品詳細信息
public function new_product_details()
{
$data = array(
'product_id' => $this->new_product(),
'user_id' => $this->session->id_user
);
$this->db->insert('products', $data);
if($this->db->affected_rows()) {
return true;
}
return false;
}
如您所述,我需要知道這種方式是否有效,即使我不像Codeigniter中那樣遵循示例,並且如果使用這些函數Codeigniter可以檢測數據庫中的查詢或插入是否失敗,那麼if他們可以給我一些更好的例子。
感謝您的幫助
好主意,這也是一個辦法做到這一點,我想用功能最有組織的方式去做 –