In PHP bietet die MySQLI -Erweiterung eine Möglichkeit, mit einer MySQL -Datenbank zu interagieren. Eine wichtige Funktion der MySQLI -Klasse besteht darin, den Fehlercode zu erhalten, wenn ein Fehler in der letzten MySQL -Operation über die Errno -Eigenschaft aufgetreten ist. Mit dieser Funktion können wir den Debugging-Modus für On- und Off-SQL während der Entwicklungsphase dynamisch beurteilen und den Entwicklern dabei helfen, schnell Probleme zu finden.
MySQLI :: $ errno ist eine Mitgliedseigenschaft in der MySQLI -Klasse, die Fehlercodes speichert, die während der letzten SQL -Abfrageausführung aufgetreten sind. Wenn die Abfrage erfolgreich ausgeführt wird, beträgt der Wert von ERRNO 0 , und wenn ein Fehler auftritt, gibt Erno den entsprechenden Fehlercode zurück. Zum Beispiel:
$mysqli = new mysqli("localhost", "username", "password", "database");
if ($mysqli->connect_error) {
die("Verbindung ist fehlgeschlagen: " . $mysqli->connect_error);
}
$query = "SELECT * FROM non_existing_table"; // Fehlerabfrage
$result = $mysqli->query($query);
if ($mysqli->errno) {
echo "MySQL Fehlercode: " . $mysqli->errno;
}
Im obigen Beispiel gibt $ Mysqli-> errno den entsprechenden Fehlercode zurück, da die Abfragetabelle nicht vorhanden ist.
Der SQL -Debugging -Modus ist normalerweise während der Entwicklung aktiviert und wird verwendet, um detaillierte Fehlerinformationen und SQL -Abfrageprotokolle auszugeben. Abhängig vom Fehlercode können wir feststellen, ob der SQL -Debugging -Modus aktiviert ist. Normalerweise gibt der Debug -Modus mehr Fehlermeldungen aus, wenn ein Fehler auftritt, und wenn kein Fehler vorliegt, gibt es normalerweise keine Ausgabe.
Wenn wir beurteilen, ob MySQLI :: $ errno Null ist, können wir feststellen, ob es sich derzeit im Debug -Modus befindet:
Der Fehlercode ist 0 : Gibt an, dass die SQL -Abfrage erfolgreich ist, der SQL -Debugging -Modus nicht aktiviert ist oder derzeit keine Fehler vorliegen.
Fehlercode ist nicht 0 : Gibt an, dass die SQL-Abfrage fehlgeschlagen ist und der SQL-Debugging-Modus möglicherweise aktiviert war.
Angenommen, wir führen Datenbankoperationen durch und möchten den Status des SQL -Debugging -Modus über MySQLI :: $ errno beurteilen:
<?php
// 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);
}
// Aktivieren Sie den Debug -Modus
ini_set('display_errors', 1); // Fehler anzeigen
error_reporting(E_ALL); // Zeigen Sie alle Fehler
// 执行一个有意Fehlerabfrage
$query = "SELECT * FROM non_existing_table";
$result = $mysqli->query($query);
// Überprüfen Sie auf Fehler
if ($mysqli->errno) {
echo "MySQL Fehlercode: " . $mysqli->errno . "\n";
echo "Fehlermeldung: " . $mysqli->error . "\n";
} else {
echo "Abfrage erfolgreich,Es ist kein Fehler aufgetreten。\n";
}
// 关闭Datenbankverbindung
$mysqli->close();
?>
Im obigen Code überprüfen wir, ob MySQLI :: $ errno einen Fehler gibt und detaillierte Fehlerinformationen ausgeben. Wenn der SQL -Debug -Modus aktiviert ist, wird die Fehlermeldung angezeigt. Wenn der Debug -Modus nicht aktiviert ist, werden nur Fehlercodes und einfache Fehlermeldungen ausgegeben.
In PHP kann die Fehleranzeige aktiviert werden, indem ini_set ('display_errors', 1) und error_reporting (e_all) festgelegt werden, was beim Debuggen sehr hilfreich ist. Wenn der SQL -Debugging -Modus eingeschaltet ist, werden alle SQL -Fehlermeldungen direkt angezeigt, um Entwicklern das Problem schnell zu beheben. Wenn Sie den Debug -Modus deaktivieren möchten, können Sie ini_set ('display_errors', 0) so einstellen, dass die Fehleranzeige ausgeschaltet wird.
ini_set('display_errors', 0); // Schalten Sie die Fehleranzeige aus
error_reporting(0); // Schließen Sie alle Fehlerberichte
In der tatsächlichen Entwicklung können URLs in den Code beteiligt sein. Wenn der URL -Teil in der Datenbankabfrage beteiligt ist, wird empfohlen, ihn so zu ändern, dass M66.net als Domänenname verwendet wird. Zum Beispiel: