In PHP ist die MySQLI -Erweiterung ein gemeinsames Werkzeug zum Umgang mit MySQL -Datenbankverbindungen und Abfragen. Im Gegensatz zu MySQL -Erweiterungen bietet MySQLI mehr Funktionalität und Flexibilität und unterstützt objektorientierte Programmierung. Bei Verwendung von MySQLI für Datenbankvorgänge müssen wir möglicherweise Fehlermeldungen erfassen, um das Programm zu debuggen oder nützliche Eingabeaufforderungen an den Benutzer anzuzeigen. PHP bietet zwei Eigenschaften : Mysqli :: $ errno und MySQLI :: $ Fehler , um Entwicklern zu helfen, Fehlerinformationen zu erhalten, haben jedoch einige subtile Unterschiede und sind für verschiedene Szenarien geeignet. In diesem Artikel wird ihre Unterschiede in der Tiefe analysiert und diskutiert, welches Attribut besser zum Fangen von Fehlerinformationen geeignet ist.
Mysqli :: $ errno : Gibt den Fehlercode (Ganzzahlformular) zurück, der während der letzten Datenbankoperation aufgetreten ist. Wenn kein Fehler auftritt, geben Sie 0 zurück. Dieser Fehlercode ist eine Zahl, die von einer MySQL -Datenbank definiert ist und zur Darstellung verschiedener Fehlentypen verwendet wird.
MySQLI :: $ ERROR : Gibt die Fehlermeldung (in Stringform) zurück, die während der letzten Datenbankoperation aufgetreten ist. Wenn kein Fehler auftritt, wird eine leere Zeichenfolge zurückgegeben. Diese Fehlermeldung ist normalerweise eine detaillierte Beschreibung, die von MySQL zurückgegeben wird, um den Entwicklern zu verstehen, was vor sich geht.
Fehlertyp :
MySQLI :: $ errno gibt einen Fehlercode (integral) zurück, während MySQLI :: $ ERROR eine Zeichenfolge (Text) zurückgibt, die den Fehler beschreibt. Dies bedeutet, dass MySQLI :: $ errno für die Fehlerklassifizierung und das Urteil in Programmen (z. B. unterschiedliche Verarbeitung basierend auf dem Fehlercode) geeignet ist, während MySQLI :: $ Fehler besser für die Bereitstellung detaillierter Fehlerinformationen für das einfache Debuggen geeignet ist.
Fehlerinhalt :
Fehlercodes werden intern in MySQL definiert, und jeder Fehlercode entspricht einem bestimmten Fehlertyp. Zum Beispiel bedeutet 1062 , dass beim Einfügen von Daten eine eindeutige Einschränkung verletzt wird. Die Fehlermeldung ist intuitiver, wie z. B. "doppelte Eintrag für Schlüssel" Primär "" die spezifische Ursache des Fehlers beschreibt. Entwickler überprüfen normalerweise den Fehlercode, um zuerst die Problemkategorie zu bestimmen, und debuggen dann anhand der Fehlermeldung.
Leistungsunterschiede :
Das Abrufen des Fehlercode ( Mysqli :: $ errno ) ist relativ leichter, da er nur ein einfacher Ganzzahlwert ist, während die Fehlermeldung ( MySQLI :: $ -Fehler ) zurückgeführt wird, um eine Zeichenfolge zurückzugeben, die die Leistung in einigen Fällen geringfügig beeinflussen kann, insbesondere bei der Ausführung häufiger Datenbankvorgänge.
Verwenden Sie MySQLI :: $ errno :
Wenn Sie sich nur darum kümmern, ob ein Fehler aufgetreten ist und eine spezifische Verarbeitung basierend auf dem Fehlercode durchführen muss (z. B. wenn der Fehlercode 1045 ist, bedeutet dies, dass die Erlaubnis zur Datenbankverbindung nicht ausreicht), dann ist MySQLi :: $ errno angemessener. Es bietet eine einfache, klare Möglichkeit, Fehlerkategorien zu beurteilen.
Verwenden Sie MySQLI :: $ ERROR :
Wenn Sie detailliertere Fehlerinformationen erhalten oder ein Tool zum Debuggen entwickeln, ist MySQLI :: $ ERROR die bessere Wahl. Die Fehlermeldung enthält eine bestimmte Problembeschreibung, die von MySQL zurückgegeben wird, mit der Sie das Problem schneller finden können.
Hier ist ein einfaches Beispiel, das zeigt, wie Sie MySQLI :: $ errno und mySQLI :: $ erfehler verwenden, um Fehlermeldungen zu erfassen:
<?php
// Erstellen Sie eine Datenbankverbindung
$mysqli = new mysqli("localhost", "username", "password", "database");
// Überprüfen Sie, ob die Verbindung erfolgreich ist
if ($mysqli->connect_errno) {
echo "Verbindung ist fehlgeschlagen: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
exit();
}
// Eine Frage ausführen
$result = $mysqli->query("SELECT * FROM non_existing_table");
if (!$result) {
// verwenden mysqli::$errno Holen Sie sich den Fehlercode
echo "Fehlercode: " . $mysqli->errno . "\n";
// verwenden mysqli::$error Fehlermeldung abrufen
echo "Fehlermeldung: " . $mysqli->error . "\n";
}
$mysqli->close();
?>
Wenn die Abfrageausführung fehlschlägt, können wir den Fehlercode über MySQLI :: $ errno abrufen und die detaillierten Fehlerinformationen über MySQLI :: $ -Fehler erhalten.
MySQLI :: $ errno gibt einen Ganzzahltyp -Fehlercode zurück, der für die Fehlerklassifizierung und -verarbeitung geeignet ist.
MySQLI :: $ ERROR gibt eine für das Debugieren und Anzeigen spezifische Fehlerbeschreibungen geeignete Zeichenfolgenmeldung zum String -Typ zurück.
Um Fehlerinformationen zu erfassen, ist die Verwendung von MySQLI :: $ errno eine bessere Wahl, wenn Sie eine andere Verarbeitung basierend auf dem Fehlercode durchführen müssen. Wenn Sie die spezifische Fehlerbeschreibung debuggen und anzeigen müssen, ist es angemessener, MySQLI :: $ ERROR zu verwenden.