国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

如何禁用 PHP 報告 SQL 錯誤?
P粉550257856
P粉550257856 2023-09-05 17:14:24
0
1
810
<p>我有自己的 PHP 數(shù)據(jù)類,它使用 <code>mysqli_error($this->conn) 將 MySQL 錯誤記錄到 txt 文件</code></p> <p>一切都工作正常,直到我將 PHP 錯誤處理設(shè)置為 E_ALL。現(xiàn)在 PHP 攔截了錯誤,并且它沒有機會被我的 MySQL 錯誤處理程序處理。</p> <p>這不會是一個問題,除非 PHP 不記錄出錯的完整 SQL 字符串。它僅記錄前 20 個字符左右,后跟“...”,這對于調(diào)試來說不是很有用。</p> <p>所以我的問題是:是否可以告訴 PHP 忽略 MySQL 錯誤,同時仍然處理 PHP 錯誤?</p> <p>我已經(jīng)查看了 error_reporting() 的各個級別,但似乎沒有任何內(nèi)容專門留下 MySQL 錯誤。</p>
P粉550257856
P粉550257856

全部回復(fù)(1)
P粉161939752

您可以通過禁用 mysqli 錯誤報告來做到這一點,但任何常規(guī)項目都不應(yīng)該這樣做。事實上,看來您正在以錯誤的方式解決這個問題!您不應(yīng)該想要禁用錯誤報告,您應(yīng)該修復(fù)錯誤!

正如您所提到的,如果錯誤來自錯誤構(gòu)建的動態(tài) SQL 語句,那么您的代碼不應(yīng)包含任何邏輯來處理這種可能的情況,因為您不想讓錯誤成為設(shè)計的一部分。就像任何其他錯誤一樣,這是 PHP 代碼中的一個錯誤。它本身表現(xiàn)為 MySQL 錯誤這一事實是無關(guān)緊要的。您必須修復(fù)構(gòu)建無效 SQL 語句的代碼! 沉默錯誤無助于修復(fù)錯誤!

假設(shè)您的 PHP 代碼從常量 SQL 部分構(gòu)建 SQL(如果它使用變量,那么您的代碼中就會出現(xiàn)更大的問題),那么您的任務(wù)是確定哪個代碼路徑導(dǎo)致 SQL 關(guān)鍵字的不正確組合。您可以從 SQL 錯誤中部分推斷出這一點。異常消息將告訴您語法錯誤是什么。如果 MySQL 錯誤與損壞的語法無關(guān),則過程仍然類似:找到導(dǎo)致錯誤的原因并修復(fù)它。

不要在 SQL 代碼周圍編寫特殊的錯誤處理邏輯。這很混亂,而且絕對沒有必要。

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板