In PHP bietet die MySQLI -Erweiterung ein leistungsstarkes Tool für MySQL -Datenbankvorgänge. MySQLI :: Debugg ist eine der sehr nützlichen Funktionen, die uns helfen können, während der Entwicklung zu debuggen. Wenn Sie diese Funktion jedoch in verschiedenen Laufumgebungen verwenden, gibt es einige Unterschiede. In diesem Artikel werden wir den Unterschied diskutieren, wenn wir MySQLI :: Debug in der Befehlszeilenschnittstelle (CLI) und in Webumgebungen verwenden und untersuchen, wie Sie auf Basis verschiedener Umgebungen debuggen.
Mysqli :: Debug ist eine statische Methode, die den Debug -Modus von MySQL ermöglicht. Diese Methode ermöglicht es uns, MySQL -Debugging -Informationen auszugeben und hilft uns bei der Diagnose von Problemen während der Abfrageausführung.
mysqli::debug(string $message);
<?php
// Aktivieren Sie den Debug -Modus
mysqli::debug('client_trace=1; record=1');
?>
Wenn der Debug -Modus aktiviert ist, gibt MySQL eine große Menge an Debugging -Informationen aus, einschließlich Abfrageprotokollen, Fehlermeldungen und Verbindungsinformationen. Diese Informationen können Entwicklern helfen, die Details der Abfrageausführung zu verstehen.
In der CLI -Umgebung (Befehlszeilenschnittstelle) wird die Ausgabe von MySQLI :: Debug. direkt im Befehlszeilenterminal angezeigt. Wenn wir PHP -Skripte in einer CLI -Umgebung ausführen, werden Debug -Informationen normalerweise direkt an die Standardausgabe ausgegeben.
Angenommen, wir führen ein PHP -Skript wie folgt aus:
<?php
mysqli::debug('client_trace=1; record=1');
$conn = new mysqli('localhost', 'root', '', 'test');
$conn->query("SELECT * FROM users");
?>
Wenn das Skript in der CLI -Umgebung ausgeführt wird, werden die Debugging -Informationen auf dem Terminal angezeigt.
Das Debugieren von Informationen in einer CLI -Umgebung ist sehr einfach zu erhalten und wird direkt in der Konsole angezeigt.
Sie können alle Datenbankvorgänge und Debuggeninformationen in Echtzeit anzeigen, um Entwicklern dabei zu helfen, schnell Probleme zu finden.
Da CLI -Skripte normalerweise nicht die Protokollierung des Webservers beinhalten, werden Debug -Informationen direkt auf dem Terminal angezeigt. Eine zusätzliche Konfiguration ist jedoch erforderlich, wenn Sie Debug -Informationen in einer Datei speichern möchten.
In einer Webumgebung wird die Ausgabe von MySQLI :: Debugg nicht direkt im Browser angezeigt. Webumgebungen verarbeiten normalerweise Anfragen über Webserver wie Apache oder NGINX, was bedeutet, dass die Debugging -Informationen in die Protokolldatei des Webservers angemeldet sind und nicht direkt an den Benutzer angezeigt werden.
<?php
mysqli::debug('client_trace=1; record=1');
$conn = new mysqli('localhost', 'root', '', 'test');
$conn->query("SELECT * FROM users");
?>
Wenn das Skript in einer Webumgebung ausgeführt wird, werden Debug -Informationen in das Fehlerprotokoll des Webservers geschrieben und erscheint nicht in der Ausgabe des Browsers.
Das Debugieren von Informationen in der Webumgebung wird dem Benutzer nicht direkt ausgesetzt, was die Sicherheit verbessert.
Debugging -Informationen können in Protokolldateien gespeichert werden, um die nachfolgende Anzeige und Analyse zu vereinfachen.
Sie müssen das Fehlerprotokoll des Webservers (z. B. das von Apache error_log ) anzeigen, um Debug -Informationen anzuzeigen.
Wenn Sie Debugging -Informationen an einen bestimmten Ort (z. B. eine Datei) ausgeben müssen, kann diese durch benutzerdefinierte Konfiguration erreicht werden.
Die CLI -Umgebung ist eine der am häufigsten verwendeten Debugging -Umgebungen während der Entwicklung, und Sie können alle Debug -Ausgaben direkt vom Terminal aus betrachten. Wenn Sie ein detailliertes Debuggen in der CLI -Umgebung aktivieren möchten, können Sie den folgenden Code verwenden:
<?php
if (php_sapi_name() == 'cli') {
mysqli::debug('client_trace=1; record=1');
// Datenbankvorgänge durchführen
$conn = new mysqli('localhost', 'root', '', 'test');
$conn->query("SELECT * FROM users");
}
?>
Hier verwenden wir die Funktion php_sapi_name (), um festzustellen, ob die aktuelle Umgebung CLI ist. Nur in der CLI -Umgebung kann MySQLI :: Debug ermöglicht werden, um Debugging -Informationen auszugeben.
Das Debugieren von Informationen in einer Webumgebung wird normalerweise in einer Protokolldatei aufgezeichnet. Wenn Sie Debug -Informationen in einer Webumgebung anzeigen möchten, können Sie die Debug -Ausgabe in eine Protokolldatei umleiten oder das Fehlerprotokoll des Webservers anzeigen. Zum Beispiel:
<?php
if (php_sapi_name() != 'cli') {
mysqli::debug('client_trace=1; record=1');
// Datenbankvorgänge durchführen
$conn = new mysqli('localhost', 'root', '', 'test');
$conn->query("SELECT * FROM users");
}
?>
Wenn Sie dies tun, wird sichergestellt, dass die Debug -Informationen ausgegeben und nur in einer Webumgebung aufgezeichnet werden.
Zusammenfassend lässt sich sagen, dass MySQLI :: Debugug in CLI- und Webumgebungen unterschiedlich verwendet wird. In der CLI -Umgebung werden Debug -Informationen direkt an das Terminal ausgegeben, während in der Webumgebung Debug -Informationen normalerweise im Protokoll des Webservers aufgezeichnet werden. Abhängig von verschiedenen Betriebsumgebungen können wir bedingte Aussagen verwenden, um zu entscheiden, ob Debug -Informationen aktiviert werden sollen, wodurch ein effektives Debuggen in verschiedenen Umgebungen gewährleistet wird.
Denken Sie beim Debugging daran, den Debug -Modus in der Produktion nicht zu aktivieren, um ein undagees, vertrauliche Informationen zu vermeiden. Verwenden Sie MySQLI :: Debugug nur in Entwicklungs- und Testumgebungen und stellen Sie sicher, dass die Protokollinformationen nur für Entwickler sichtbar sind.