有沒有辦法區分查詢形成不正確時與MySQL返回的錯誤信息VS用戶輸入錯誤輸入?查詢錯誤時出現錯誤VS輸入錯誤時
例如:
//WRONG QUERY
try {
INSERT into table_name ('clm1','clm2') values('val1','val2'); //BAD query
}
catch (PDOException $e) {
echo $e->getMessage(); //display the error message returned
}
VS.
//wrong user input
try {
INSERT INTO table_name ('unique_clm1') value('duplicate_value_from_user');
}
catch (PDOException $e) {
echo $e->getMessage(); //display the error message returned
}
原因:
如果在開發者編寫的查詢時出現錯誤;錯誤需要顯示爲原始MySQL錯誤以進行調試......而不良用戶條目需要顯示爲錯誤消息給用戶而不會中斷正常的代碼流程.....
用戶輸入在到達數據庫之前應進行驗證和消毒。換句話說,當你運行db查詢時,壞的用戶輸入應該*理想地*不會是一個因素。 –
我不確定依靠數據庫進行用戶輸入驗證是個好主意。您應該在代碼中執行此操作,並在用戶進入DB INSERT – Galz
輸入驗證之前警告用戶。然後告訴用戶出了什麼問題,然後重試。 – Irvin