問題概述:
使用常用方法向插入資料插入資料插入資料向(如插入NULL、0或空括號)並隨後查詢對於最後插入的ID (LAST_INSERT_ID()) 總是傳回 0。此問題同時影響 PHP 的 mysql_insert_id 和 PDO::lastInsertId()。
解決方案:
問題出在 MySQL phpmyadmin 設定檔。當 PersistentConnections 設定為 FALSE 時,將為每個查詢建立一個新的 CONNECTION_ID。這會使 LAST_INSERT_ID() 結果無效,因為它與先前的連接相關聯。
要解決此問題,請在 phpmyadmin 設定檔中將 PersistentConnections 設定為 TRUE。這可確保在多個查詢中保持相同的連接,從而允許 LAST_INSERT_ID() 準確地傳回最後插入的 ID。
其他資訊:
有關PersistentConnections 的影響,請參閱主題「每個查詢都會建立一個新的CONNECTION_ID()"。
致謝:
特別感謝 dnagirl 在識別此問題時提供的寶貴幫助。
以上是為什麼 MySQL 中 `LAST_INSERT_ID()` 回傳 0?的詳細內容。更多資訊請關注PHP中文網其他相關文章!