mysqli_connect 失敗的自訂錯誤訊息
當嘗試連接到資料庫時,mysqli_connect 用於顯示由該語言產生的錯誤訊息,但是PHP 8.1 改變了這種行為。現在,mysqli 會在錯誤時引發異常,從而無需手動處理錯誤。
自訂錯誤訊息會適得其反
不建議對連線錯誤使用自訂錯誤訊息。錯誤偵測和處理應該由 mysqli 或 PDO 自動處理,而不需要手動 if 檢查。顯示自訂錯誤訊息可能會損害使用者安全並提供不必要的詳細資訊。
錯誤處理最佳實務
要隱藏錯誤訊息,請設定display_errors 在php.ini 或PHP 程式碼中將設定選項設定為0:
<code class="php">ini_set('display_errors', 0);</code>
此外,實作錯誤處理程序以顯示不可恢復錯誤的通用錯誤頁:
<code class="php">set_exception_handler(function ($e) { error_log($e); http_response_code(500); if (ini_get('display_errors')) { echo $e; } else { echo '<h1>500 Internal Server Error</h1><br>An internal server error has been occurred.<br>Please try again later.'; } });</code>
HTTP 500 錯誤
HTTP 500 錯誤
當頁面因伺服器錯誤而無法傳遞內容時,它應該使用HTTP 500 程式碼回應。這是正確處理錯誤所必需的,不應被抑制。
捕捉特定場景的連線錯誤
在某些情況下,可能需要捕捉明確的連線錯誤。當處理場景超出錯誤報告範圍時,可以在連線嘗試周圍使用 try..catch 區塊來實現這一點。
隱藏連線憑證
防止機密資料庫密碼為了避免在堆疊追蹤中暴露,請將PHP 更新到版本8.2 或更高版本,這會隱藏此類資訊.以上是## 如何處理 PHP 8.1 及更高版本中的資料庫連線錯誤:最佳實務與安全注意事項的詳細內容。更多資訊請關注PHP中文網其他相關文章!