兩次即一次:了解MySQL 資料庫插入問題
在一個令人困惑的場景中,一段PHP 程式碼旨在意外地將資料插入MySQL 資料庫僅運行一次後就插入資料兩次。該程式碼在本機上運行完美,但在部署到伺服器時會出現重複問題。而且,如果頁面刷新兩次,資料庫只反映單一結果。這種令人困惑的困境提出了一個問題:哪些因素導致了這種異常行為。
隱藏的罪魁禍首
答案在於瀏覽器的請求處理。當瀏覽器載入網頁時,它們會發送多個請求,其中一個針對主腳本,另一個針對網站圖示。在這種情況下,即使程式碼只執行一次,.htaccess 文件的存在也會將所有請求重新路由到索引文件,從而導致多個資料庫插入。
解決方法
要解決此問題,應修改程式碼以僅針對特定請求執行插入查詢,不包括 favicon 請求。這可以透過新增一個檢查請求 URI 中是否存在 favicon.ico 檔案的條件來實現。如果文件不存在,則表示是常規頁面請求,則執行插入查詢;
修訂後的代碼
以下修訂後的代碼通過引入必要條件解決了該問題:
if (!strpos($_SERVER['REQUEST_URI'], 'favicon.ico')) { $result = mysql_query($sql); }
以上是為什麼我的 PHP 程式碼只運行一次就在 MySQL 插入資料兩次?的詳細內容。更多資訊請關注PHP中文網其他相關文章!