2011-12-10 111 views
1

是否笨2必須做什麼代碼所示,BELOW公司的更清潔的方式?如您所見,我試圖通過POST將數據插入到彼此相關的3個獨立表格中。笨2:多次插入和最後一個插入ID

一旦我插入table1,我要抓住它的last insert id並輸入爲table2_idtable3_id(外鍵)的值。

我GOOGLE了這一點,這和人們提到分貝交易,但我不知道是否有沒有交易的方式。

只是好奇,作爲一個新手。

下面的代碼:

public function create() 
{ 
    $this->load->model('table1'); 
    $this->load->model('table2'); 
    $this->load->model('table3'); 

//validation goes here 

    $id1 = $this->table1->insert($this->input->post('table1')); 

    $data2 = array_merge($this->input->post('table2'), array('table1_id' => $id1)); 
    $id2 = $this->table2->insert($data2); 

    $data3 = array_merge($this->input->post('table3'), array('table1_id' => $id1)); 
    $id3 = $this->table3->insert($data3); 
} 

回答

1

你具備的功能:

$this->db->insert_id(); 

,它可以插入後即可使用,讓您插入數據的ID。您可以隨時添加一個if else語句來檢查是否已正確地插入數據,並與刀片的其餘部分進行。

+0

不理想,但我想這會工作:)我有沒有檢查這一點,因爲我現在用的鋰的方式,但它似乎是它的工作:http://codeigniter.com/user_guide/database/helpers.html 感謝您的迴應。 – Housni