Beim Versuch, eine Datenbankverbindung herzustellen, ist ein Problem aufgetreten, bei dem die von Ihnen definierte benutzerdefinierte Fehlermeldung nicht angezeigt wurde wird angezeigt, wenn die Verbindung fehlschlägt. Sie suchen auch nach einer Methode, um Fehlermeldungen aus der Sicht des Benutzers zu unterdrücken.
Ab PHP 8.1 löst die MySQLi-Erweiterung jetzt automatisch Ausnahmen aus, wenn eine auftritt Fehler, wodurch die Notwendigkeit einer manuellen Fehlerbehandlung entfällt, wie dies in früheren Versionen von PHP der Fall war.
Benutzerdefinierte Fehlermeldungen, wie die von Ihnen definierte, werden nicht mehr empfohlen Fehlerbehandlung. Sowohl PDO als auch mysqli können wie jeder andere PHP-Befehl automatisch Fehler auslösen. Daher ist die manuelle Fehlersuche, wie Sie es mit dem if-Segment (!$conn) versucht haben, überflüssig.
Um zu verhindern, dass Fehlermeldungen den Benutzer erreichen , sollten Sie die Konfigurationsoption display_errors verwenden, die auf 0 gesetzt werden kann, um alle Fehlerausgaben zu unterdrücken. Dies kann in der php.ini-Datei oder direkt in Ihrem PHP-Code konfiguriert werden:
ini_set('display_errors', 0);
Anstatt kryptische Fehlermeldungen anzuzeigen, empfiehlt es sich, den Seitenbesuchern eine benutzerfreundliche Fehlerseite zu präsentieren. Dies kann erreicht werden, indem ein Fehlerhandler wie der folgende eingerichtet wird, der alle nicht behebbaren Fehler abfängt:
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>\nAn internal server error has been occurred.<br>\nPlease try again later.";
}
});
Wenn Sie Datenbankverbindungsfehler speziell behandeln müssen, können Sie ein separates Verbindungstestskript verwenden, das in einen Try-Catch-Block eingebunden ist, getrennt von Ihrem regulären Verbindungscode.
Aktualisieren Sie für mehr Sicherheit Ihre PHP-Version auf 8.2 oder höher, wodurch verhindert wird, dass Datenbankkennwörter im Stack-Trace angezeigt werden.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3