2012-07-12 129 views
1

我有和this幾乎相同的問題。PHP PDO :: lastInsertId()和ATTR_PERSISTENT

基於那篇文章,我知道PDO :: lastInsertId()在從不同連接調用時是安全的。但是,如果您想在該連接期間使用PDO :: lastInsertId(),是否意味着PDO::ATTR_PERSISTENT => true應該而不是在PDO構造函數中使用?如PDO Connections and Connection Management所述,如果我需要使用PDO :: lastInsertId(),那麼我的應用程序就不得不忍受「每次腳本需要與數據庫交談時建立新連接的開銷」。

回答

1

不,這並不意味着。

在php腳本結束工作後,誰會使用相同的連接無關緊要。重要的是,您將擁有由此執行的最後插入的ID,而不是另一個連接。

因此,請隨時將其與永久性和非永久性連接一起使用。

+0

感謝您的快速響應。這是你的解釋,還是你可以指向我明確表示的文檔中的某個地方? – 2012-07-12 05:42:52

+0

@Alien Bishop:我懷疑文檔中有一些明確的陳述。很明顯,'lastInsertId()'返回當前連接的最後一個ID。像1 + 1一樣簡單。無論連接是從哪裏獲得的,也不管它在哪裏。 – zerkms 2012-07-12 05:45:55

+0

沒錯。那麼,如果Alice和Bob共享相同的連接,會發生什麼? Alice插入,Bob插入,Bob調用lastInsertId(),Alice調用lastInsertId()。既然他們有相同的連接,Alice不會得到錯誤的結果? – 2012-07-12 05:49:10