Aktueller Standort: Startseite> Neueste Artikel> Integrieren Sie $ errno in das Protokollsystem für die Fehlerklassifizierung

Integrieren Sie $ errno in das Protokollsystem für die Fehlerklassifizierung

M66 2025-05-28

Bei der Entwicklung von PHP -Anwendungen sind MySQLI -Erweiterungen eine häufige Möglichkeit, mit MySQL -Datenbanken zu interagieren. Wenn ein Datenbankbetriebsfehler auftritt, wird der Fehlercode normalerweise über MySQLI :: $ errno erhalten und die Fehlerinformationen werden in Kombination mit MySQLI :: $ ERROR erhalten. Die effektive Klassifizierung, Analyse und Aufzeichnung dieser Fehlerinformationen in das Protokoll ist jedoch ein wichtiger Schritt zur Verbesserung der Anwendungszuverlässigkeit.

In diesem Artikel wird erläutert, wie MySQL -Fehler über MySQLI :: $ Errno und Protokollierungssystem von PHP klassifiziert und aufgezeichnet werden. Dies kann die Datenbankverbindungsprobleme, Abfragebefehler und andere Fehler besser verfolgen und bearbeiten, wodurch die Fehlerbehebung und Reparatur später einfacher wird.

1. Fang MySQLi -Fehler fangen

Zunächst müssen wir wissen, wie Sie Fehlerinformationen über MySQLI erhalten. Die MySQLI -Klasse bietet mehrere Eigenschaften, mit denen wir datenbankbezogene Fehler fangen können:

  • Mysqli :: $ errno : Gibt den Fehlercode der vorherigen MySQL -Operation zurück.

  • MySQLI :: $ ERROR : Gibt die Fehlermeldung der vorherigen MySQL -Operation zurück.

Mit diesen Informationen können wir überprüfen, ob jeder Datenbankvorgang erfolgreich ist. Wenn es fehlschlägt, können wir diese Informationen verwenden, um eine detaillierte Fehlerbeschreibung zu erhalten.

 <?php
$mysqli = new mysqli("localhost", "user", "password", "database");

// Überprüfen Sie die Verbindung
if ($mysqli->connect_error) {
    echo "Verbindung ist fehlgeschlagen: " . $mysqli->connect_error;
    exit();
}

// Ausführen a SQL Abfrage
$result = $mysqli->query("SELECT * FROM non_existent_table");

if (!$result) {
    // Erfassungsfehlercodes und Fehlermeldungen
    $errno = $mysqli->errno;
    $error = $mysqli->error;
    echo "MySQL Fehlernummer: $errno, Fehlermeldung: $error";
}
?>

Wenn die Abfrageausführung fehlschlägt, können wir MySQLI :: $ errno und mySQLI :: $ error verwenden, um die Fehlerinformationen zu erfassen und aufzuzeichnen.

2. Integrieren Sie das Protokollierungssystem

Als nächstes integrieren wir diese Fehlermeldungen in das Protokollsystem. Es ist üblich, Fehlerinformationen in eine Protokolldatei auszugeben oder vorhandene Protokollbibliotheken wie Monolog zu verwenden, um komplexere Protokollierungsfunktionen zu implementieren.

2.1 Verwenden von PHP-integrierter Protokollierungsfunktion

Der einfachste Weg ist die Verwendung der integrierten Protokollierungsfunktion von PHP (), um Fehler zu protokollieren.

 <?php
// Protokolldateipfad konfigurieren
$log_file = "/path/to/your/logfile.log";

// 捕获Fehlermeldung并写入日志
if (!$result) {
    $errno = $mysqli->errno;
    $error = $mysqli->error;
    $log_message = date("Y-m-d H:i:s") . " - Fehlernummer: $errno, Fehlermeldung: $error\n";
    error_log($log_message, 3, $log_file);
}
?>

2.2 Anmelde mit Monolog

Für eine flexiblere Protokollierung können wir Monolog als Bibliothek von Drittanbietern verwenden. Monolog unterstützt eine Vielzahl von Protokollprozessoren, die Protokolle für Dateien, Datenbanken, E -Mails und andere Kanäle ausgeben und Protokollebenen (z. B. Debug , Info , Fehler usw.) unterstützt.

 <?php
require 'vendor/autoload.php';

use Monolog\Logger;
use Monolog\Handler\StreamHandler;

// Erstellen Sie einen Protokollkanal
$log = new Logger('my_logger');
$log->pushHandler(new StreamHandler('/path/to/your/logfile.log', Logger::ERROR));

// 执行Abfrage并捕获Fehler
if (!$result) {
    $errno = $mysqli->errno;
    $error = $mysqli->error;
    // 记录Fehlermeldung到日志
    $log->error("MySQL Fehlernummer: $errno, Fehlermeldung: $error");
}
?>

2.3 Fehlerklassifizierung

Durch Protokolle können wir nicht nur Fehlerinformationen aufzeichnen, sondern sie auch nach verschiedenen Arten von Fehlern klassifizieren. Beispielsweise können Datenbankverbindungsfehler, SQL -Abfragesyntaxfehler, Verstöße gegen die Datenbeschränkung usw. Diese Fehler können für eine spätere Analyse getrennt aufgezeichnet werden.

Wir können verschiedene Protokollebenen für verschiedene Arten von Fehlern definieren:

 <?php
if ($mysqli->connect_error) {
    $log->critical("数据库Verbindung ist fehlgeschlagen: " . $mysqli->connect_error);
} elseif (!$result) {
    $errno = $mysqli->errno;
    $error = $mysqli->error;
    if ($errno == 1146) {
        $log->warning("Es gibt keinen Fehler in der Tabelle: $error");
    } else {
        $log->error("andere MySQL Fehler: $error");
    }
}
?>

Wenn die Datenbankverbindung fehlschlägt, verwenden wir die kritische Ebene, um das Protokoll zu protokollieren, wodurch ein schwerwiegender Fehler angezeigt wird. Bei Fehlern, die in der Tabelle nicht vorhanden sind, verwenden wir Warnstufdatensätze .

3.. Analyse und Überwachung

Mit den Fehlerprotokollen können wir diese Protokolle auch analysieren, um potenzielle Probleme in der Anwendung zu finden. Zum Beispiel können wir den Befehl Grep verwenden, um bestimmte Fehler in der Protokolldatei zu finden oder einige Tools für Protokollanalyse zu verwenden, um eine detailliertere Analyse durchzuführen.

Wenn Sie Datenbankfehler automatisch überwachen möchten, können Sie einige Systemüberwachungstools (wie ELK -Stack, Graylog usw.) kombinieren, um Datenbankfehler durch Protokollaggregation und -analyse zu erkennen und auf Fehler zu reagieren.

4. Zusammenfassung

Durch die Integration von MySQLI :: $ errno in das Protokollsystem können wir Fehler in den MySQL -Datenbankvorgängen besser verwalten und überwachen. Dies hilft uns nicht nur, Fehler zu fangen und zu klassifizieren, sondern erleichtert auch die spätere Fehleranalyse und Debugging, wodurch die Zuverlässigkeit und Stabilität der Anwendung verbessert wird.

Wenn Sie eine Protokollbibliothek wie Monolog in Ihrem Projekt verwendet haben, kombiniert mit MySQLI -Fehlerinformationen, können Sie eine effizientere Fehlerverfolgung und -verarbeitung erreichen. Die Klassifizierung und Analyse von Fehlern ist auch ein wichtiger Schritt bei der Optimierung des Systems und hilft den Entwicklern dabei, potenzielle Probleme frühzeitig zu entdecken.