In PHP enthält die MySQLI -Erweiterung reichhaltige Datenbank -Interaktionsfunktionen, mit denen Entwickler mySQL -Datenbanken effizient eine Verbindung herstellen und arbeiten können. Die MySQLI :: Query -Methode wird normalerweise zum Ausführen von Datenbankabfragen verwendet. Während der Abfrageausführung können Sie jedoch auf verschiedene Fehler stoßen. Um die Effizienz der Fehlerbehebung zu verbessern, können die Fehler bei der Verwendung mit MySQLI :: Abfrage über das Attribut von MySQLI :: $ errno genau lokalisiert werden.
In diesem Artikel wird vorgestellt, wie Sie MySQLI :: $ errno verwenden, um Fehler zu fangen und detaillierte Fehlerinformationen bereitzustellen, mit denen Entwickler Probleme schneller finden können.
Die MySQLi :: Query -Methode wird verwendet, um eine SQL -Abfrageanweisung auszuführen, Abfrageergebnisse zurückzugeben oder true oder false zurückzugeben, wenn Einfügen , Aktualisieren , Löschen und andere Vorgänge zur Änderung der Datenbank geändert werden.
Das MySQLI :: $ errno -Attribut enthält den Fehlercode der letzten Datenbankoperation. Durch diese Eigenschaft können wir verstehen, ob bei der Ausführung von SQL -Anweisungen ein Fehler aufgetreten ist, und sogar den spezifischen Fehlertyp erhalten.
Hier sind die grundlegenden Verwendungen von MySQLI :: Query :
<?php
$mysqli = new mysqli("localhost", "username", "password", "database");
if ($mysqli->connect_error) {
die("Connection failed: " . $mysqli->connect_error);
}
$sql = "SELECT * FROM users";
$result = $mysqli->query($sql);
if (!$result) {
echo "Query failed with error code: " . $mysqli->errno;
} else {
// Prozessabfragenergebnisse
}
?>
Im obigen Beispiel führen wir die SQL Query -Anweisung über MySQLI :: Query aus und verwenden MySQLi :: $ errno, um den Fehlercode zu erhalten, wenn die Abfrage fehlschlägt.
Durch Überprüfen der Eigenschaft von MySQLI :: $ errno können wir den Fehlercode zum Ausfall des Datenbankvorgangs erhalten. Basierend auf dem Fehlercode können wir das Problem weiter verstehen. Zu den gängigen Fehlercodes gehören beispielsweise:
1049 : Unbekannte Datenbank.
1146 : Die Tabelle existiert nicht.
1064 : SQL -Syntaxfehler.
<?php
$mysqli = new mysqli("localhost", "username", "password", "database");
if ($mysqli->connect_error) {
die("Connection failed: " . $mysqli->connect_error);
}
// Falsch SQL Stellungnahme,Syntaxfehler
$sql = "SELEC * FROM users"; // Beachten,Ich habe es mit Absicht hier geschrieben `SELECT`
$result = $mysqli->query($sql);
if (!$result) {
// Erhalten Sie Fehlercode und Fehlerinformationen
echo "Query failed with error code: " . $mysqli->errno . " - " . $mysqli->error;
} else {
// Prozessabfragenergebnisse
}
?>
Im obigen Beispiel haben wir absichtlich eine falsche SQL -Anweisung ( SELEC * von Benutzern ) geschrieben. Wenn die Abfrageausführung fehlschlägt, erhalten wir den Fehlercode über MySQLI :: $ errno und erhalten die Fehlerinformationen über MySQLI :: $ ERROR . Dies kann uns helfen, die spezifischen Probleme von SQL -Syntaxfehlern zu klären.
In der tatsächlichen Entwicklung kombinieren wir normalerweise MySQLI :: $ Errno und MySQLI :: $ Fehler für die Fehlerbehandlung, um sicherzustellen, dass Probleme schnell entdeckt und behoben werden können. Hier sind einige gängige Möglichkeiten, um mit Fehlern umzugehen:
<?php
$mysqli = new mysqli("localhost", "username", "password", "database");
if ($mysqli->connect_error) {
die("Connection failed: " . $mysqli->connect_error);
}
$sql = "SELECT * FROM users";
$result = $mysqli->query($sql);
if (!$result) {
switch ($mysqli->errno) {
case 1146:
echo "Table not found: " . $mysqli->error;
break;
case 1064:
echo "SQL syntax error: " . $mysqli->error;
break;
default:
echo "Database error: " . $mysqli->error;
}
} else {
// Prozessabfragenergebnisse
}
?>
In diesem Beispiel geben wir spezifische Fehlerinformationen auf der Grundlage verschiedener Fehlercodes aus (z. B. existierende Tabellen oder SQL -Syntaxfehler), damit Entwickler klarer wissen, was vor sich geht.
In Produktionsumgebungen wird normalerweise nicht empfohlen, Fehlerinformationen für Benutzer direkt auszugeben, insbesondere für datenbankbezogene Fehler. Um die Sicherheit zu verbessern, können wir Fehlerinformationen für die anschließende Anzeige in der Protokolldatei protokollieren.
<?php
$mysqli = new mysqli("localhost", "username", "password", "database");
if ($mysqli->connect_error) {
die("Connection failed: " . $mysqli->connect_error);
}
$sql = "SELECT * FROM users";
$result = $mysqli->query($sql);
if (!$result) {
// Protokollierung
error_log("SQL Error [" . $mysqli->errno . "]: " . $mysqli->error, 3, "/path/to/error.log");
echo "An error occurred. Please check the log file for details.";
} else {
// Prozessabfragenergebnisse
}
?>
Hier schreibt die Funktion "ERROR_LOG" Fehlerinformationen in die Protokolldatei, um Entwicklern zu helfen, Probleme zu verfolgen und zu beheben.
Über die Eigenschaft von MySQLI :: $ errno können wir Fehler in Datenbankoperationen genau erfassen und Probleme basierend auf Fehlercodes und Fehlerinformationen weiter finden und lösen. In Kombination mit einem guten Fehlerbehebungsmechanismus können Entwickler PHP- und MySQL -Interaktionen effektiver debuggen und optimieren.
Denken Sie daran, dass ein guter Fehlerbehebung den Entwicklern nicht nur hilft, den Code zu debugieren, sondern auch die Anwendungsstabilität und die Benutzererfahrung verbessert.