簡體   English   中英

無法從MySQL獲取最后插入的ID

[英]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?
是因為我正在使用beginTransactioncommit ,因此它作為一個事務處理?

是的。 您需要在提交事務之前獲取ID。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM