2014-08-29 52 views
-2

我有一個網站,您可以在其中輸入您觀看過的電視劇。有兩個表,其中標題是主鍵,另一個表將該標題作爲外鍵引用。在php中捕獲mysql錯誤並給出自定義響應

由於數據是由不熟悉編程奇蹟的用戶輸入的,我想嘗試捕獲外鍵約束失敗的mysql錯誤,並給出「找不到標題」等響應。

我知道你可以在Java中嘗試catch塊。

我創建這個網站純粹是爲了練習我的網站開發技巧,因爲我對編程相當陌生,所以它沒什麼嚴重的。

+0

你已經實現了一個數據庫結構嗎?如果是這樣,請您發帖嗎? – Giorgio 2014-08-29 09:40:22

+0

你的意思是我的創建表語句? – Eridanis 2014-08-29 09:46:50

回答

1

當然。這取決於你正在使用的MySQL API。如果你使用的是ext/mysql,stop using it。如果您使用的是mysqli或PDO,則取決於您是否配置了兩者以引發異常(在這種情況下,try..catch將執行此操作),或者功能是否僅失敗return false,在這種情況下,您必須添加錯誤處理代碼:

if (!mysqli_query(...)) { 
    // handle error here 
} 

要區分不同的SQL錯誤,請使用mysqli_errno

+0

我只使用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

+0

所以,你已經有90%的路了。只要不是'die()',做一些更有用的事情。 – deceze 2014-08-29 09:43:27

+0

是的,但事情是,$插入可能由於多種原因是錯誤的,例如,如果用戶試圖插入相同的標題兩次,它會拋出一個「重複項主鍵」錯誤,我不會能夠區分使用當前條件的兩個條件 – Eridanis 2014-08-29 09:48:26

相關問題