„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Warum werden meine benutzerdefinierten Fehlermeldungen bei mysqli_connect-Fehlern nach dem Upgrade auf PHP 8.1 nicht angezeigt?

Warum werden meine benutzerdefinierten Fehlermeldungen bei mysqli_connect-Fehlern nach dem Upgrade auf PHP 8.1 nicht angezeigt?

Veröffentlicht am 08.11.2024
Durchsuche:384

Why Are My Custom Error Messages Not Displaying in mysqli_connect Failures After Upgrading to PHP 8.1?

Untersuchung der versteckten benutzerdefinierten Fehlermeldung in mysqli_connect-Fehlern

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.

Die Art der Fehlermeldung

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.

Der Grund für die Fehlerunterdrückung

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.

Verhindern der Fehleranfälligkeit für Benutzer

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);

Bereitstellung einer benutzerfreundlichen Fehlerseite

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.";
    }
});

Datenbankverbindungsfehler separat behandeln

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.

Verbindungsanmeldeinformationen schützen

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.

Neuestes Tutorial Mehr>

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