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);
}
$this->db->insert_id();
它可以在插入后使用,并为您提供插入数据的 id。您始终可以添加 if else 语句来检查是否已正确插入数据并继续其余插入。