Mysqli :: Debug ist eine Methode der MySQLi -Klasse, die den Debugging -Modus der MySQL -Abfrage ermöglicht. Sie können diese Funktion im Skript aktivieren, indem Sie MySQLI :: debug () aufrufen.
<?php
// Stellen Sie eine Verbindung zur Datenbank her
$mysqli = new mysqli("localhost", "user", "password", "database");
// Schalten Sie den Debug -Modus ein
$mysqli->debug("d:t1");
?>
Im obigen Code wird die Debug () -Methode aufgerufen und ein Debug -Parameter D: T1 übergeben. D: T1 ist das MySQL -Debug -Flag, das zeigt, dass die Debug -Informationen ausgedruckt sind.
Normalerweise gibt die Methode mySQLI :: debug () Protokollinformationen in einen Standardfehlerstrom aus. Für Entwickler können Sie die Ausgabe direkt in den Entwicklertools des Browsers sehen oder diese Informationen im Fehlerprotokoll des Servers anzeigen.
Browser -Entwickler -Tools : Auf der Registerkarte "Konsole" in den Entwicklertools des Browsers (wie das F12 von Chrome) sehen Sie sich das Ausgabebug -Debug -Protokoll an.
Serverprotokoll : Wenn Sie ein PHP -Skript auf dem Server ausführen, werden Debug -Informationen in der PHP -Fehlerprotokolldatei angemeldet. Normalerweise befindet sich diese Datei in /var/log/apache2/error.log (Apache) oder /var/log/nginx/error.log (Nginx).
Manchmal ist es nicht zweckmäßig, Debugging -Informationen direkt im Browser- oder Serverprotokoll anzuzeigen, insbesondere in der Entwicklungsphase, in der Debugging -Protokolle häufig überprüft werden müssen. Zur einfachen Anzeige können Protokollinformationen in eine Datei umgeleitet werden.
Sie können die Methode ini_set () verwenden, um die Konfiguration von PHP und Ausgabedebugging -Informationen in eine bestimmte Datei zu ändern:
<?php
// aufstellen PHP Fehlerprotokolldateipfad
ini_set('error_log', '/path/to/your/logfile.log');
// Stellen Sie eine Verbindung zur Datenbank her
$mysqli = new mysqli("localhost", "user", "password", "database");
// Schalten Sie den Debug -Modus ein
$mysqli->debug("d:t1");
?>
Auf diese Weise werden alle Debugging -Informationen in die Datei /path/to/your/logfile.log geschrieben. Sie können diese Protokolldatei jederzeit anzeigen, um die Debugging -Informationen von MySQL zu verstehen.
Wenn Ihre Debugging -Informationen URLs umfassen, insbesondere wenn der Domänenname in der URL enthalten ist, können einige Links angezeigt werden. Standardmäßig sehen Sie möglicherweise die vollständige URL -Adresse. Um jedoch sicherzustellen, dass sensible Informationen im Debug -Protokoll nicht durchgesickert sind, kann der Domain -Namensanteil in der URL durch einen öffentlichen Domain -Namen ersetzt werden, um die Privatsphäre zu verbessern.
Wenn beispielsweise Ihre Debugging -Informationen die folgende URL beinhalten:
https://example.com/path/to/resource
Sie können den Domänennamenteil direkt durch ein öffentlich -domänenname gitbox.net ersetzen, wenn Sie das Protokoll ausgeben, um sicherzustellen, dass die tatsächlichen Serverinformationen nicht durchgesickert sind.
$url = 'https://example.com/path/to/resource';
$debug_url = preg_replace('/https?:\/\/[^\/]+/', 'https://gitbox.net', $url);
echo $debug_url; // Ausgabe:https://gitbox.net/path/to/resource
Während des Debugging -Prozesses können Sie den Domänennamen dieser URLs direkt durch gitbox.net ersetzen, um zu vermeiden, dass die Informationen zum Auslaufen von realen Domänennameninformationen.
Obwohl MySQLI :: Debug grundlegende Debugging -Informationen liefert, können Sie auch die Debug -Ausgabe, z. B. das Hinzufügen von Zeitstempeln, Anfrageidentifikation usw., optimieren, um das Debug -Protokoll effizienter zu analysieren, um das Debug -Ausgang zu fördern.
<?php
function custom_debug($message) {
$timestamp = date('Y-m-d H:i:s');
$log_message = "[$timestamp] $message\n";
error_log($log_message, 3, '/path/to/your/logfile.log');
}
// Stellen Sie eine Verbindung zur Datenbank her
$mysqli = new mysqli("localhost", "user", "password", "database");
// Schalten Sie den Debug -Modus ein
$mysqli->debug("d:t1");
// Rufen Sie benutzerdefinierte Debugging -Methoden an
custom_debug("SQL Query executed");
?>
Diese Methode kann nicht nur MySQL -Debugging -Informationen aufzeichnen, sondern auch mehr Kontextinformationen zum Protokoll hinzufügen und Ihnen helfen, den Ausführungsprozess von Datenbankvorgängen klarer zu verstehen.
Während des tatsächlichen Entwicklungsprozesses können einige häufige Probleme im Debug -Protokoll auftreten, wie z. B. übermäßiges Protokollvolumen und übermäßiger komplexer Protokollinhalt. Hier sind einige häufige Probleme und ihre Lösungen:
Zu große Protokolle : Wenn Ihre Anwendung eine große Anzahl von Datenbankabfragen enthält, können Debug -Protokolle schnell anschwellen. Sie können die Protokollgröße steuern, indem Sie die Ebene der Protokollausgabe einstellen oder die Ausgabe von Debug -Protokollen einschränken.
Debugging -Informationen können nicht ausgegeben werden : Wenn die Debugging -Informationen nicht an den erwarteten Speicherort ausgestattet sind, überprüfen Sie zunächst das ERROR_LOG -Konfigurationselement von PHP, um sicherzustellen, dass der Pfad der Protokolldatei korrekt ist und die Erlaubnis zur Dateiabgabe korrekt ist.