Aktueller Standort: Startseite> Neueste Artikel> Entwicklungs- und Debugging-Tools: Echtzeitüberwachung von MySQLI :: get_warnings Ausgabe

Entwicklungs- und Debugging-Tools: Echtzeitüberwachung von MySQLI :: get_warnings Ausgabe

gitbox 2025-05-26

Was ist MySQLI :: get_warnings?

Mysqli :: get_warnings ist eine Methode, die von der MySQLI -Erweiterung von PHP bereitgestellt wird, um Warninformationen zu erhalten, die durch kürzlich ausgeführte SQL -Anweisungen generiert werden. Es gibt eine Kette von MySQLi_Warning -Objekten zurück, die jeweils Warndetails wie Fehlercodes und Warnmeldungen enthalten.

Durch Durchqueren dieser Warnungen können Entwickler Details erfassen, die nicht explizit geworfen werden, aber die Richtigkeit der Daten beeinflussen können.


Grundlegende Ideen zur Überwachung der Datenbankwarnungen

  1. Nachdem Sie die SQL -Abfrage ausgeführt haben, rufen Sie Get_Warnings an, um zu überprüfen, ob eine Warnung vorliegt.

  2. Überqueren Sie die Warnkette und sammeln Sie Warninformationen.

  3. Die Warninformationen werden in Echtzeit für die Bequemlichkeit der nachfolgenden Analyse ausgegeben oder gespeichert.

  4. Es kann mit dem Protokollsystem oder dem Front-End-Display kombiniert werden, um ein visuelles Überwachungswerkzeug zu bilden.


Beispielcode

Das folgende Beispiel zeigt, wie Sie eine SQL -Anweisung ausführen und Warninformationen über MySQLI :: get_warnings erhalten und sie an das Debug -Protokoll ausgeben.

 <?php
$mysqli = new mysqli("gitbox.net", "username", "password", "database");

if ($mysqli->connect_error) {
    die("Verbindung ist fehlgeschlagen: " . $mysqli->connect_error);
}

// Beispiel SQL:Das Einsetzen eines doppelten Primärschlüssels kann eine Warnung erzeugen
$sql = "INSERT INTO test_table (id, name) VALUES (1, 'Alice')";

// Eine Frage ausführen
if ($mysqli->query($sql) === TRUE) {
    echo "Abfragenausführung erfolgreich\n";

    // Eine Warnung bekommen
    if ($warnings = $mysqli->get_warnings()) {
        do {
            echo "Warncode: " . $warnings->errno . "\n";
            echo "Warnmeldung: " . $warnings->message . "\n";
        } while ($warnings = $warnings->next());
    } else {
        echo "Keine Warnung\n";
    }
} else {
    echo "Abfrageausführung fehlgeschlagen: " . $mysqli->error . "\n";
}

$mysqli->close();
?>

Erweiterung der Warnungen zur Überwachung der Echtzeitüberwachung

1. Schreiben Sie automatisch Protokolldateien

Um Warninformationen zu bestehen, können Sie Warnungen in eine Datei schreiben:

 function logWarnings($mysqli) {
    if ($warnings = $mysqli->get_warnings()) {
        $logFile = 'db_warnings.log';
        do {
            $log = date('Y-m-d H:i:s') . " - Warning {$warnings->errno}: {$warnings->message}\n";
            file_put_contents($logFile, $log, FILE_APPEND);
        } while ($warnings = $warnings->next());
    }
}

Die automatische Aufzeichnung kann nach jedem Datenbankvorgang durch Aufrufen von Logwarnings ($ mySQLI) erreicht werden.

2. Echtzeit-Anzeige der Front-End-Seite

Das Aufrufen von PHP -Skripten über Ajax gibt die neuesten Warnungen zurück. Die Front-End-Seite kann die Warnliste in Echtzeit aktualisieren und es den Entwicklern erleichtert.


Dinge zu beachten

  • Warnungen beziehen sich nur auf den neuesten Datenbankvorgang, und die alten Warnungen werden nach Ausführung der neuen Erklärung überschrieben.

  • Mysqli :: get_warnings ist nur gültig, wenn MySQL Server Warnmechanismen unterstützt.

  • Häufige Fragen und Warnungen aufzeichnen können einen gewissen Einfluss auf die Leistung haben. Es wird empfohlen, nur beim Debuggen der Umwelt oder der Ausnahmeüberwachung zu aktivieren.


Zusammenfassen

Mit MySQLI :: Get_Warnings -Funktion von PHP können Sie Warninformationen in Datenbankoperationen effektiv erhalten. Durch Kombination von Protokollierung und Echtzeit-Präsentationstechnologie kann ein einfaches Datenbankwarnüberwachungsinstrument erstellt werden, mit dem Entwickler potenzielle Probleme rechtzeitig erkennen und den Datenbankzugriff und die Anwendungsleistung optimieren können.