當我需要知道在插入之前是否有獨特的東西。我通常只是試圖插入它,然後如果失敗,檢查是否mysql_errno()是1062.如果它是我知道它作爲重複鍵失敗,我可以做任何我需要做的事情。mysql surpress dupe關鍵錯誤
最常見的地方是在用戶表中。我將電子郵件設置爲與登錄時的「用戶名」一樣唯一。在處理註冊表單時,我並沒有運行額外的查詢來檢查唯一性,而只是編譯查詢,執行並檢查1062錯誤號。如果1062失敗,我很好地告訴用戶電子郵件已註冊,並且一切都很好。
但是我最近設置了一個非常基本的MITM sql查詢函數,它爲系統上的其他開發人員提供了查詢時間的訪問權限,頁面底部所有sql查詢的日誌,最重要的是函數它根據需要建立mysql連接到正確的數據庫(而不是手動連接和傳遞鏈接標識符)。
在sql錯誤查詢日誌中這個函數在磁盤上創建,是我所有的重複條目。這顯然不會讓其他人看到錯誤(即使在處理和預期的情況下)。有沒有一種方法來抑制錯誤,但仍然能夠檢查mysql_errno()?
爲什麼不搜索表中的密鑰,並發現它被找到時重複?所以不會發生錯誤,而且您不需要抑制它。 – Nobody
,因爲那是額外的mysql查詢和附加代碼。如果我將用戶名從電子郵件更改爲指定的用戶名,會發生什麼。我將不得不在需要知道該唯一密鑰的任何地方修改代碼。性能明智,我想它只有幾毫秒的幫助,但我想保持我的查詢計數儘可能低。 – Lee
你已經創建了一個記錄事物的函數,並且抱怨記錄太多了?這是你的功能...你不能修改它不記錄「無關」的錯誤? –