我有一個網站,您可以在其中輸入您觀看過的電視劇。有兩個表,其中標題是主鍵,另一個表將該標題作爲外鍵引用。在php中捕獲mysql錯誤並給出自定義響應
由於數據是由不熟悉編程奇蹟的用戶輸入的,我想嘗試捕獲外鍵約束失敗的mysql錯誤,並給出「找不到標題」等響應。
我知道你可以在Java中嘗試catch塊。
我創建這個網站純粹是爲了練習我的網站開發技巧,因爲我對編程相當陌生,所以它沒什麼嚴重的。
我有一個網站,您可以在其中輸入您觀看過的電視劇。有兩個表,其中標題是主鍵,另一個表將該標題作爲外鍵引用。在php中捕獲mysql錯誤並給出自定義響應
由於數據是由不熟悉編程奇蹟的用戶輸入的,我想嘗試捕獲外鍵約束失敗的mysql錯誤,並給出「找不到標題」等響應。
我知道你可以在Java中嘗試catch塊。
我創建這個網站純粹是爲了練習我的網站開發技巧,因爲我對編程相當陌生,所以它沒什麼嚴重的。
當然。這取決於你正在使用的MySQL API。如果你使用的是ext/mysql,stop using it。如果您使用的是mysqli或PDO,則取決於您是否配置了兩者以引發異常(在這種情況下,try..catch
將執行此操作),或者功能是否僅失敗return false
,在這種情況下,您必須添加錯誤處理代碼:
if (!mysqli_query(...)) {
// handle error here
}
要區分不同的SQL錯誤,請使用mysqli_errno
。
我只使用mysqli函數與PHP多數民衆贊成它,你可以指示我如果可能的指導,我的變量返回false。到目前爲止,我已經這樣做了:$ insert = mysqli_query($ connection,$ query); if($ insert == false){ \t die(「error:」。mysqli_error($ connection)); } else { \t mysqli_close($ connection); \t echo $ title。 「已插入」; } – Eridanis 2014-08-29 09:41:18
所以,你已經有90%的路了。只要不是'die()',做一些更有用的事情。 – deceze 2014-08-29 09:43:27
是的,但事情是,$插入可能由於多種原因是錯誤的,例如,如果用戶試圖插入相同的標題兩次,它會拋出一個「重複項主鍵」錯誤,我不會能夠區分使用當前條件的兩個條件 – Eridanis 2014-08-29 09:48:26
你已經實現了一個數據庫結構嗎?如果是這樣,請您發帖嗎? – Giorgio 2014-08-29 09:40:22
你的意思是我的創建表語句? – Eridanis 2014-08-29 09:46:50