Heim > Datenbank > MySQL-Tutorial > Warum werden in PHP keine Fehlermeldungen zu meiner benutzerdefinierten MySQLi-Verbindung angezeigt?

Warum werden in PHP keine Fehlermeldungen zu meiner benutzerdefinierten MySQLi-Verbindung angezeigt?

Barbara Streisand
Freigeben: 2024-11-30 16:17:12
Original
765 Leute haben es durchsucht

Why Aren't My Custom MySQLi Connection Error Messages Displaying in PHP?

Benutzerdefinierte Fehlermeldungen bei MySQLi Connect-Fehlern in PHP: Eine umfassende Anleitung

In Ihrem Code-Snippet stoßen Sie auf ein Problem, bei dem ein benutzerdefinierter Fehler aufgetreten ist Die Meldung wird nicht angezeigt, wenn die MySQLi-Verbindung fehlschlägt. Zuvor erforderte die MySQL-Erweiterung von PHP eine manuelle Fehlerbehandlung durch if (!$conn)-Prüfungen. Mit der Einführung von PHP 8.1 löst mysqli nun jedoch Ausnahmen bei Fehlern aus, sodass solche expliziten Prüfungen nicht mehr erforderlich sind.

Warum benutzerdefinierte Fehlermeldungen nicht angezeigt werden

In modernen PHP-Versionen löst MySQLi automatisch aus löst Fehler aus, wenn eine Verbindung fehlschlägt. Daher ist die if (!$conn)-Anweisung unnötig und sollte entfernt werden, damit die Ausnahme effektiv behandelt werden kann.

Korrigieren des Codes

Um das Problem zu beheben, können Sie Ihren Code aktualisieren wie folgt:

function connectDatabase(){
    $dbServerName = 'local_host';
    $dbUsername = 'root';
    $dbPassword = '';
    $dbName = 'kishor_me';

    try {
        $conn = mysqli_connect($dbServerName, $dbUsername, $dbPassword, $dbName);
    } catch (Exception $e) {
        // Handle the connection error here
    }
}
Nach dem Login kopieren

Fehler vor Benutzern verbergen

Um Fehlermeldungen vor Benutzern zu verbergen, können Sie PHPs verwenden display_errors-Konfigurationsoption:

ini_set('display_errors', 0);
Nach dem Login kopieren

Benutzerfreundliche Fehlerseiten anzeigen

Um eine benutzerfreundlichere Fehlerseite anzuzeigen, können Sie einen Fehlerhandler implementieren:

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.';
    }
});
Nach dem Login kopieren

Behandlung von Verbindungsfehlern

Wenn eine spezifische Behandlung von Verbindungsfehlern erforderlich ist, können Sie try..catch verwenden blockiert:

try {
    $conn = mysqli_connect($dbServerName, $dbUsername, $dbPassword, $dbName);
} catch (Exception $e) {
    // Handle the connection error here
}
Nach dem Login kopieren

Verbindungsanmeldeinformationen ausblenden

Um zu verhindern, dass Datenbankkennwörter in Fehlermeldungen angezeigt werden, aktualisieren Sie auf PHP 8.2 oder höher.

Das obige ist der detaillierte Inhalt vonWarum werden in PHP keine Fehlermeldungen zu meiner benutzerdefinierten MySQLi-Verbindung angezeigt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage