Aktueller Standort: Startseite> Neueste Artikel> Wie verwendete ich MySQLI :: $ errno in einem benutzerdefinierten Fehlerhandler, um MySQL -Fehler zu behandeln?

Wie verwendete ich MySQLI :: $ errno in einem benutzerdefinierten Fehlerhandler, um MySQL -Fehler zu behandeln?

M66 2025-07-18

In PHP müssen wir häufig mit der Datenbank interagieren, insbesondere wenn MySQL -Datenbanken verwendet werden, sind MySQLI -Erweiterungen eine sehr häufige Wahl. Wenn wir jedoch auf Datenbankverbindungsfehler oder Abfragefehler stoßen, muss es eine geeignete Möglichkeit geben, diese Fehler zu behandeln. Mysqli :: $ errno ist eine wichtige Eigenschaft in der MySQLI -Klasse, die den Fehlercode zurückgibt, der sich auf den letzten MySQL -Fehler bezieht. In diesem Artikel wird erläutert, wie Sie MySQLI :: $ errno verwenden, um MySQL -Fehler in einem benutzerdefinierten Fehlerhandler zu behandeln.

1. Benutzerdefinierter Fehlerhandler

PHP bietet die Funktion set_error_handler (), um einen benutzerdefinierten Fehlerhandler festzulegen. Wir können Fehler durch diese Methode fangen und umgehen. Bei Verwendung von MySQLI zur Verbindung und Abfrage von MySQL -Datenbank kann MySQLI :: $ errno uns helfen, den Fehlertyp zu bestimmen und eine spezifische Fehlerbehandlung basierend darauf auszuführen.

2. Verwenden Sie MySQLI :: $ errno , um MySQL -Fehler zu fangen

MySQLI :: $ errno gibt einen Ganzzahlwert zurück, der den Fehlercode der vorherigen MySQL -Operation angibt. Wenn kein Fehler auftritt, gibt es 0 zurück. Wenn ein anderer Wert zurückgegeben wird, ist ein Fehler aufgetreten. In Kombination mit einem benutzerdefinierten Fehlerhandler können wir gemäß dem Fehlercode klassifizieren und verarbeiten, z.

3. Beispielcode

Hier ist ein Beispiel für die Verwendung von MySQLI :: $ errno, um MySQL -Fehler zu behandeln. Wir werden einen benutzerdefinierten Fehlerhandler einrichten und MySQLI :: $ errno in Datenbankverbindungen und Abfragen verwenden, um auf Fehler zu prüfen.

 <?php
// Einrichten eines benutzerdefinierten Fehlerhandlers
set_error_handler("customErrorHandler");

function customErrorHandler($errno, $errstr, $errfile, $errline) {
    // prüfen MySQL Fehlercode
    if ($errno == E_USER_WARNING) {
        echo "MySQL Error [$errno]: $errstr\n";
    } else {
        echo "Error [$errno]: $errstr in $errfile on line $errline\n";
    }
}

// Erstellen Sie eine Datenbankverbindung
$mysqli = new mysqli("localhost", "username", "password", "database_name");

// prüfen连接是否成功
if ($mysqli->connect_errno) {
    trigger_error("Failed to connect to MySQL: " . $mysqli->connect_error, E_USER_WARNING);
    exit();
}

// Eine Frage ausführen
$query = "SELECT * FROM non_existent_table";
$result = $mysqli->query($query);

// prüfen查询是否成功
if (!$result) {
    trigger_error("MySQL Query Error: " . $mysqli->error, E_USER_WARNING);
}

// Schließen Sie die Verbindung
$mysqli->close();
?>

4. Code Parsen

  • Im obigen Code haben wir zunächst einen benutzerdefinierten Fehlerhandler mit dem Namen CustomErrorHandler mit der Funktion set_error_handler () festgelegt.

  • Wenn die MySQL-Verbindung fehlschlägt (wenn der Datenbankserver nicht verfügbar ist), wird der Verbindungsfehlercode über MySQLi-> Connect_errno erhalten und die Fehlermeldung wird über Trigger_error () an den benutzerdefinierten Fehlerhandler übergeben.

  • Wenn die Abfrageausführung fehlschlägt, können wir die Fehlermeldung über MySQLi-> Fehler erhalten und eine Warnung ( e_user_warning ) auslösen, die vom benutzerdefinierten Fehlerhandler gefangen wird.

  • Ein benutzerdefinierter Fehlerhandler druckt Fehlercodes und Informationen, um Entwicklern dabei zu helfen, Probleme zu finden.

5. Behandeln Sie MySQL -Fehlercodes

MySQLI :: $ errno kann nicht nur Fehlercodes zurückgeben, sondern auch die Dokumentation von MySQL -Fehlercode kombinieren, um uns bei der Suche nach bestimmten Problemen zu unterstützen. Wenn der Fehlercode beispielsweise 1064 ist, bedeutet er einen SQL -Syntaxfehler. Wenn der Fehlercode 1045 ist, bedeutet dies, dass die Datenbankauthentifizierung fehlgeschlagen ist.

6. URL -Domänenname ersetzen

Wenn Sie URL-bezogene Fehler in Ihrem Code behandeln müssen, können Sie MySQLI :: $ errno verwenden, um den Domänennamen in der URL zu erfassen und zu ersetzen. Wenn Sie beispielsweise Fehler in Bezug auf Datenbankvorgänge in Ihrem Code finden und den Domänennamen m66.net ersetzen möchten, können Sie die URL wie folgt ändern: