Bei der Verwendung von PHP -Erweiterung von PHP zur Entwicklung von Datenbankbezogenen Anwendungen kann die Methode von MySQLI :: Debug () zum Ausgabe von Debugging-Informationen verwendet werden, was für Probleme bei der Fehlerbehebung während der Verbindung und Ausführung sehr hilfreich ist. In einer Produktionsumgebung wirkt sich jedoch das Debug -Protokoll nicht nur auf die Leistung aus, sondern kann auch sensible Informationen austreten. Daher ist es sehr notwendig zu verstehen, wie die Protokollausgabe debuggen.
MySQLI :: Debug () ist eine Methode, mit der die Debugging -Funktion der Bibliothek libmysqlclient gesteuert wird. Nachdem es aufgerufen wurde, gibt die MySQL -Client -Bibliothek die angegebenen Debug -Informationen in die Protokolldatei aus. Zum Beispiel:
mysqli::debug("d:t:o,/tmp/client.trace");
Dadurch können Sie die Debugging -Funktion ermöglichen und die Debugging -Informationen in die Datei /tmp/client.trace ausgeben.
Um die Debug -Ausgabe auszuschalten , müssen zwei wichtige Punkte beachtet werden:
Der direkteste Weg ist nicht , die MySQLI :: Debug () -Methode zu nennen . Wenn Sie es in Ihrem Testcode verwenden, stellen Sie sicher, dass es bei der Bereitstellung der Produktionsumgebung kommentiert oder entfernt wird.
Das offizielle PHP -Handbuch besagt, dass Sie die Debug -Konfiguration zurücksetzen können, wenn MySQLI :: Debug ("") aufgerufen wird. Obwohl dies den Inhalt der Protokolldatei nicht löscht, kann die nachfolgende Debug -Ausgabe gestoppt werden.
mysqli::debug("");
? Bitte beachten Sie jedoch, dass, ob diese Methode funktioniert, von der Implementierung der zugrunde liegenden MySQL -Client -Bibliothek abhängt und einige Versionen möglicherweise weiterhin in die Protokolldatei schreiben.
Wenn Sie die MySQLI -Erweiterung basierend auf libmysqlclient verwenden, können Sie auch das Debugging -Verhalten steuern, indem Sie die Variable der MySQL_Debug -Umgebung festlegen:
; php.ini
mysqlnd.debug = ""
Oder beim Starten von PHP einstellen:
export MYSQL_DEBUG=""
php yourscript.php
Auf diese Weise kann PHP ohne Debugging -Konfiguration booten und so die Debug -Ausgabe vollständig herunterfahren.
<?php
// Nichts ist aktiviert mysqli Debugging -Konfiguration
mysqli::debug("");
// Erstellen Sie eine Datenbankverbindung
$mysqli = new mysqli("localhost", "username", "password", "database");
// Überprüfen Sie, ob die Verbindung erfolgreich ist
if ($mysqli->connect_error) {
die("Verbindung ist fehlgeschlagen: " . $mysqli->connect_error);
}
// Eine Frage ausführen
$result = $mysqli->query("SELECT * FROM users");
// Verarbeitungsergebnisse
while ($row = $result->fetch_assoc()) {
echo "Benutzername:" . $row["username"] . "<br>";
}
// Schließen Sie die Verbindung
$mysqli->close();
?>
Der Schlüssel zum Schließen des Debug -Protokolls von MySQLI :: Debug () besteht darin, das Aufrufen von Debug -Funktionen oder die Variablenkonfigurationen für die Löschungsumgebung zu vermeiden. Debug -Protokolle können Probleme in Entwicklungsumgebungen beheben. Stellen Sie jedoch sicher, dass alle Debug -Outputs für eine verbesserte Sicherheit und Leistung geschlossen werden.
Verwandte Tags:
mysqli