PHP PDO插入一條資料,重複出現兩條的情況
$dsn = sprintf("mysql:host=%s;dbname=%s;charset=utf8", $host, $dbName);
$_dbHandle = new PDO($dsn, $user, $password, $option);
$sql = "insert into `name` (`age`) values (18)";
$_dbHandle->exec($sql);
非常簡單的sql插入,但是每次執行的時候會出現兩條一模一樣的資料,
在我的環境下就出現問題,在別人的環境裡就沒有問題,於是我懷疑是環境問題。
頁面重新整理的時候根本看不出重複重新整理的樣子,但實際上真的執行了兩條,只是看不出來。
因為我當時在編寫rewrite規則,nginx沒有給我報任何問題,但是我只操作了這裡,所以認定是rewrite的問題。
具體原因如下:
由於nginx的重寫問題(rewrite)的時候,在location的模組中,錯誤的語法,導致了專案被重複執行了兩次,
因為是nginx的重寫跳轉問題,在nginx層面就進行跳轉了,還不等響應資料,就已經跳轉了,
所以我們在斷點除錯的時候無法檢驗出這個問題。
如果遇到同樣的場景,可以根據實際情況嘗試把rewrite檔案刪除,或者修改來測試是否為nginx的問題。
注:apache沒有測過,但是也有可能也會有類似的情況。