2017-08-04 57 views
0

我目前的工作在我的網站,並具有以下設置對於大多數SQL查詢處理MySQL的錯誤

if (!mysqli_query($con,"UPDATE table SET column='$value'WHERE id='$id'")) 
{ echo("error: " . mysqli_error($con)); } 

工作正常,但細想起來,我認爲它是一個壞主意,呼應錯誤。我在數百個文件中多次使用這種方法,所以我問是否有一種簡單的方法來糾正這種情況,而不必手動去查看每個文件,也是記錄錯誤的最佳方式。

將它插入到另一個表,文本文件或只是忽略它會更好嗎?如果是這樣,我可以舉一個如何去做的例子。

非常感謝。

+1

保持一個'log'表,或文本文件命名爲'error_log'或使用'try'和'catch'它的結構。這實在是一個不好的做法。 – Bhavin

+0

我們不能告訴你如何處理你的錯誤記錄,因爲這一切取決於你如何處理你的網站,你有什麼選擇來恢復和檢查它們。因此,這將是關於意見。但是,向用戶迴應技術錯誤輸出不是明智的選擇。 – ksjohn

+1

你知道最新的真的是一個非常糟糕的主意嗎?像你一樣把變量放入查詢中。我認爲他們會受到用戶輸入的影響?因此,您的代碼非常容易受到SQL注入的攻擊,並且您的數據庫可能會在幾秒鐘內被攻破,而且沒有問題。查看http://bobby-tables.com瞭解SQL注入以及如何防止它們。他們在如何使用準備好的語句以及如何使代碼安全方面有非常好的例子。現在我永遠不會對你的代碼產生影響,它的風險非常高。 – Twinfriends

回答

0

相反,你可以使用下面的功能把你的錯誤日誌:

error_log("Failed to connect to database!", 0); 

編輯

看看php.ini中的log_errors配置選項。它似乎只是做你想做的。我想你可以使用error_log選項來設置你自己的日誌文件。

當log_errors指令設置爲On時,PHP報告的任何錯誤都將記錄到服務器日誌或由error_log指定的文件中。如果需要,也可以使用ini_set來設置這些選項。

(請注意:display_errors應該在php.ini中如果啓用該選項被禁用)