2010-05-09 51 views
2

我使用PDO和保存結果插入一條記錄在$result我作爲一個布爾獲取剛添加使用MySQL記錄ID準備語句

$result = $addRecord->execute(); 

if ($result){ 
    //add successful 
} else { 
    //add unsuccessful 
} 

我想也得使用記錄id剛剛添加。在表中,每條記錄都有一個名爲idauto_incremented字段。我試過這樣做

$new_id = $result['id']; 

但似乎$result實際上並不持有記錄添加。有人可以證實這一點,我將如何訪問剛剛添加的記錄?

請注意,有幾個人可能同時添加到同一張表中,所以我需要一些非常準確的東西。

回答

4

PDO::lastInsertId()應該工作。

編輯:(沒看到你的其他部分)

的MySQL mantains上http://dev.mysql.com/doc/refman/5.0/en/getting-unique-id最後插入的ID。所以如果其他東西插入一行,它應該只會返回意想不到的結果,如果該查詢是使用相同的連接執行的(如持久連接)

+0

但正如我在問題中所說,如果有幾個人在同一時間添加,那麼會不會返回一個可能由其他人插入的ID?請參閱我的問題中的最後一行 – dmontain 2010-05-09 00:45:36

+1

@dmontain:否每個連接都有一個請求,每個請求都有自己的連接,所以這不會是一個問題。 – ryeguy 2010-05-09 01:00:30

+0

@dmontain添加了有關併發性的信息,包括指向MySQL文檔的鏈接。 – Reece45 2010-05-09 01:00:48