Codeigniter 2:多个插入和最后一个插入ID

时间:2011-12-10 21:52:13

标签: codeigniter query-optimization codeigniter-2

Codeigniter 2 是否有更简洁的方法来执行下面代码中显示的内容?

正如您所看到的,我正在尝试通过 POST 将数据插入到彼此相关的3个单独的表中。

我插入table1后,我想抓住其last insert id并输入table2_idtable3_id(外键)的值。

我用谷歌搜索了这个,人们已经提到了数据库交易,但我想知道是否有没有交易的方式。

好奇,成为 CodeIgniter 新手。

以下是代码:

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 个答案:

答案 0 :(得分:1)

你有这个功能:

$this->db->insert_id();

它可以在插入后使用,并为您提供插入数据的ID。您始终可以添加if else语句来检查是否已正确插入数据并继续执行其余插入。