Codeigniter 2 是否有更简洁的方法来执行下面代码中显示的内容?
正如您所看到的,我正在尝试通过 POST 将数据插入到彼此相关的3个单独的表中。
我插入table1
后,我想抓住其last insert id
并输入table2_id
和table3_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);
}
答案 0 :(得分:1)
你有这个功能:
$this->db->insert_id();
它可以在插入后使用,并为您提供插入数据的ID。您始终可以添加if else语句来检查是否已正确插入数据并继续执行其余插入。