MySQL:排除LAST_INSERT_ID() 傳回0
在MySQL 中,LAST_INSERT_ID() 函數傳回為最後插入的行所產生的ID MyAUTO_RMENT列。但是,您遇到了一個問題,儘管向表中插入了新記錄,但它始終傳回 0。
經調查,問題似乎源自於您的 MySQL 設定。您提到 PHP 函數 mysql_insert_id 和 PDO::lastInsertId() 也不會產生任何結果。這表示問題並非特定於 LAST_INSERT_ID() 函數,而是在於 MySQL 連線本身。
此問題的解決方案是在 MySQL 設定檔中將 PersistentConnections 參數設為 TRUE。這可確保您的 PHP 腳本在其操作期間保持與資料庫的相同連線。當 PercientConnections 設定為 FALSE 時,將為每個查詢建立一個新連接,這會導致 CONNECTION_ID 發生變更。結果,LAST_INSERT_ID() 變得無效,因為它無法追蹤上次插入操作的連接。
將 PersistentConnections 設定為 TRUE 可以解決此問題,允許您的腳本重複使用相同的連接,從而正確傳回 AUTO_INCRMENT ID最後插入的記錄。此外,您可以參閱有關每個查詢都會建立一個新 CONNECTION_ID() 的文件以取得更多資訊。感謝 dnagirl 幫助解決了這個問題。
以上是為什麼 MySQL 的 LAST_INSERT_ID() 回傳 0,如何修復?的詳細內容。更多資訊請關注PHP中文網其他相關文章!