[英]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.