2015-10-27 114 views
0

我在一個MySQL數據庫上使用PDO並試圖檢索lastInsertId()PDO lastInsertId()

我以爲我打算在我的表primary_key的表中找到id列中的最後一個插入的vlue。但是,我得到的是0作爲輸出

 $statement = "SELECT LAST_INSERT_ID() FROM MY_TABLE"; 
     $sql = $dbh->query($statement); 
     $lastId = $sql->fetch(PDO::FETCH_NUM); 
     $lastId = $lastId[0]; 
     return $lastId; 
+3

只是爲了確保,在運行此代碼之前,您是否使用此連接插入了某些內容?另外,這是一個交易嗎? – FirstOne

+1

如果使用此連接實際進行了插入,則last_insert_id()僅具有一個值。它不會返回表中最後使用的ID,它不會給你一個來自連接10請求的ID。 –

+0

P.S.它只是'SELECT LAST_INSERT_ID();'沒有'FROM'子句。 –

回答

1

PDO類有一個叫做lastInsertId()方法。您可以在插入記錄/記錄後使用該方法來收集最後一個插入標識。

+0

剛剛嘗試過。但我不明白我得到的價值,我能用它做什麼? – Andreas

+0

首先在數據庫中插入記錄並運行'echo $ dbh-> lastInsertId(); '緊隨其後。像這個例子: '$ dbh-> query('INSERT INTO users SET email =「[email protected]」'); echo $ dbh-> lastInsertId();' –

+0

是的,但是我得到的值並不是存儲在我的表中。我認爲輸出會像上次插入的主鍵那樣。 – Andreas