PHP 8.1 中的 MySQL 連線錯誤處理
PHP 8.1 對與 mysqli 的資料庫連線的錯誤處理引入了重大變更。現在,如果連線失敗,該函數將拋出異常,而不是在執行 mysqli_connect() 後手動檢查錯誤。
與舊版本不同,這種基於異常的方法無需向使用者顯示自訂錯誤訊息。以下程式碼示範了這一點:
<code class="php">function connectDatabase() { $dbServerName = 'local_host'; $dbUsername = 'root'; $dbPassword = ''; $dbName = 'kishor_me'; try { $conn = mysqli_connect($dbServerName, $dbUsername, $dbPassword, $dbName); echo "success message"; } catch (Exception $e) { // Handle the exception without displaying custom error messages echo "critical error message"; } }</code>
在此範例中,連線失敗時會擷取異常,並顯示通用的「嚴重錯誤訊息」而不是 PHP 產生的錯誤描述。
建議採用這種方法,以防止敏感錯誤訊息洩漏給使用者。顯示自訂錯誤訊息可能會提供太多詳細信息,使惡意行為者更容易利用漏洞。
要在即時伺服器上完全隱藏使用者的所有錯誤訊息,您可以將display_errors 設定選項設為0:
<code class="php">ini_set('display_errors', 0);</code>
如果需要,您可以設定錯誤處理程序來顯示通用錯誤頁面,而不提供特定的錯誤詳細資訊。這有助於保持用戶友好的體驗,同時仍隱藏錯誤訊息。
最後,為了屏蔽資料庫憑證出現在堆疊追蹤中,請升級到 PHP 8.2 或更高版本,其中包括隱藏敏感資訊的功能。
以上是PHP 8.1 如何簡化 MySQL 連線錯誤處理?的詳細內容。更多資訊請關注PHP中文網其他相關文章!