[英]Not able to get last inserted ID from MySQL
我根据ID在一个表中插入多行到另一个表。 对于这个项目,我正在使用PDO进行所有数据库查询。 这是我正在使用的代码/功能:
protected function importData($data) {
$i = 0;
$this->db->beginTransaction();
foreach($data as $item) {
$id = $item['id'];
$sql .= "INSERT INTO table1 (name,age)
SELECT name, age
FROM table12
WHERE id = $id; ";
$this->db->exec($sql);
$i++;
}
$this->db->commit();
// None of these are working
$last_id1 = $this->db->exec('SELECT LAST_INSERT_ID()');
$last_id2 = $this->db->lastInsertId();
echo 'id1: '.$last_id1.', id2:'.$last_id2;
}
但是对于某些原因,我无法获得最后插入的ID。 如果我在Toad for MySQL
尝试SELECT LAST_INSERT_ID()
,我会得到一个结果,但它不是最后插入行的ID。
当我以这种方式插入行时,为什么没有注册最后插入的行id?
是因为我正在使用beginTransaction
和commit
,因此它作为一个事务处理?
是的。 您需要在提交事务之前获取ID。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.