在事务中存储LAST_INSERT_ID()

Max*_*Ruf 1 php mysql transactions codeigniter

我使用codeigniter的数据库abstarction,并使用它进行交易.我的问题是,我在几个表中有几个插入,但我需要第一个插入查询中的插入ID.有没有办法存储多个后续插入的最后一个插入ID?

我不明白为什么,但ci内置函数不起作用.

Tom*_*ick 9

在执行查询后立即抓住insert_id ...

$this->db->insert('table1', $data);
$insert_id1 = $this->db->insert_id();

$this->db->insert('table2', $data);
$insert_id2 = $this->db->insert_id();

$this->db->insert('table3', $data);
$insert_id3 = $this->db->insert_id();
Run Code Online (Sandbox Code Playgroud)

这是最简单的方法.

  • 我想知道这两个语句是否应该包含在一个事务中.如果不是这样,这仍然是安全的吗? (2认同)