2013-07-26 40 views
2

「REPLACE INTO」我使用REPLACE INTO命令將/在MySQL表更新記錄時,這是越來越受影響的行的ID。但是我想獲得受REPLACE INTO影響的行的ID。如何獲得使用MySQL中

我用lastInsertId()INSERT INTO,但它在這裏沒有用,因爲如果我的記錄已經存在,然後通過使用lastInsertId()REPLACE INTO,我會得到錯誤的ID。

那麼,有沒有存在在MySQL + PHP + PDO函數來獲得ID?

+0

難道你不能更確定嗎?提供測試用例和代碼來重現?如果沒有代碼,很難驗證你可能得到或誤解的結果。謝謝。 –

回答

1

由於REPLACE INTO做了DELETE,然後一個INSERT您總能獲得任何lastInsertId()功能(錯了,因爲在「不是一個你可能期望」)中的「錯誤」的ID。

因此,您必須忍受這一點,看看INSERT INTO ... ON DUPLICATE KEY UPDATE或指定您正在嘗試完成的任務,以便我們可以提供進一步的建議。

+0

here更多信息http://mikefenwick.com/blog/insert-into-database-or-return-id-of-duplicate-row-in-mysql/ – jaczes

+0

感謝您的幫助。我只是想檢查有沒有像lastInsertID()替換INTO或沒有任何可用的函數。 –