Codeigniter 2:多次插入和最后一次插入id



是否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);
}

您有以下功能:

$this->db->insert_id();

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

最新更新