Aktueller Standort: Startseite> Neueste Artikel> Das Aufrufen von $ errno mit einem falschen Bereich führt zu einer Fehleinschätzung

Das Aufrufen von $ errno mit einem falschen Bereich führt zu einer Fehleinschätzung

M66 2025-05-29

In PHP ist MySQLI eine sehr häufige Datenbankerweiterungsbibliothek, mit der MySQL -Datenbanken betrieben werden. Und MySQLI :: $ errno ist der Fehlercode, mit dem der neueste MySQL -Fehler erfasst wird. Wenn Sie versehentlich den falschen Bereich verwenden, um es aufzurufen, kann dies zu Fehleinschätzungen führen und die Stabilität und Korrektheit des Programms beeinflussen. Heute werden wir dieses gemeinsame Problem diskutieren, um allen zu helfen, Fallen zu vermeiden.

1. Was ist MySQLI :: $ errno ?

Mysqli :: $ errno ist eine Eigenschaft, die zur MySQLI -Klasse gehört. Es wird verwendet, um den in der letzten Operation aufgetretenen Fehlercode zurückzugeben (z. B. Abfrage, Verbinden, Ausführung von SQL -Anweisungen usw.). Wenn es keinen Fehler gibt, beträgt der Rückgabewert 0 .

Normalerweise wird MySQLI :: $ errno mit anderen MySQL -Fehlermeldungen verwendet. Beispielsweise gibt MySQLI :: $ ERROR die Fehlermeldung zurück, die dem Fehlercode entspricht.

 <?php
$mysqli = new mysqli("localhost", "user", "password", "database");

if ($mysqli->connect_error) {
    echo "Verbindung ist fehlgeschlagen: " . $mysqli->connect_error;
    exit();
}

// implementieren SQL Abfrage
$result = $mysqli->query("SELECT * FROM non_existent_table");

if ($mysqli->errno) {
    echo "SQL Fehlercode: " . $mysqli->errno . "\n";
    echo "Fehlermeldung: " . $mysqli->error . "\n";
}
?>

In diesem Beispiel gibt $ MySQLi-> errno einen Fehlercode ungleich Null zurück, der einen Fehler angibt, der einen Fehler aufgetreten ist.

2. falscher Bereich führt zu Fehleinschätzungen

Der Umfang des Fehlers bezieht sich normalerweise auf die Tatsache, dass Sie MySQLI :: $ errno im falschen Kontext nennen. Das häufigste daran ist, wenn Sie eine Datenbankverbindungsinstanz ( $ mySQLI ) verwenden. Wenn Sie die Verbindung nicht korrekt initialisieren oder auf diese Eigenschaft in einem falschen Objektkontext zugreifen, kann dies zu falschen Fehlercodes oder Fehlermeldungen führen.

Häufige Beispiele für Fehlercode:

 <?php
// Falsche Verwendung mysqli::$errno
$mysqli = new mysqli("localhost", "user", "password", "database");

// Verwenden Sie den falschen Bereich
if ($mysqli->errno) {
    echo "SQL Fehlercode: " . $mysqli->errno . "\n";
    echo "Fehlermeldung: " . $mysqli->error . "\n";
}
?>

In diesem Beispiel, wenn SQL-Operationen nicht durchgeführt wurden (z. B. eine Abfrage ausführen), beträgt der Wert von $ mySQLi-> errno 0 , aber wenn das Programm dies nicht richtig behandelt, kann es mit einem Fehler verwechselt werden. Sie würden denken, dass der Fehlercode von MySQLI :: $ errno daran liegt, dass eine Abfrage fehlgeschlagen ist und die Abfrage möglicherweise überhaupt nicht ausführt.

3. Scope Frage: Wann sollte MySQLI :: $ errno anrufen?

Um eine Fehleinschätzung zu vermeiden, wird empfohlen, dass der Wert von MySQLI :: $ errno erst nach der Durchführung von SQL -Operationen überprüft wird. Das heißt, MySQLI :: $ errno ist nur nach Datenbankoperationen sinnvoll (z. B. Abfrage oder Einfügen).

Zum Beispiel:

 <?php
$mysqli = new mysqli("localhost", "user", "password", "database");

if ($mysqli->connect_error) {
    echo "Verbindung ist fehlgeschlagen: " . $mysqli->connect_error;
    exit();
}

// implementieren SQL Abfrage
$result = $mysqli->query("SELECT * FROM non_existent_table");

if ($result === false) {
    echo "SQL Fehlercode: " . $mysqli->errno . "\n";
    echo "Fehlermeldung: " . $mysqli->error . "\n";
}
?>

In diesem Code überprüfen wir nur MySQLI :: $ errno, wenn der Abfragevorgang $ mySQLI-> query () false zurückgibt (Angabe eines Fehlers). Wenn Sie die SQL -Operation überprüfen, ohne sie durchzuführen, kann dies zu Fehleinschätzungen führen.

4. Warum führt es zu Fehleinschätzungen?

Wenn Sie MySQLI :: $ errno überprüfen, bevor Sie SQL -Operationen ausführen, wird 0 zurückgegeben, was bedeutet, dass kein Fehler vorliegt. Wenn Sie jedoch fälschlicherweise der Meinung sind, dass dies ein gültiger Fehlercode ist, kann das Programm die Eingabe der Fehlerbehandlungslogik und sogar nachfolgende Datenbankvorgänge unvorhersehbar eingeben.

Um ein einfaches Beispiel zu geben, kommt es tatsächlich zu einem Fehler auf, wenn wir den folgenden Fehlercode verwenden, aber aufgrund des unsachgemäßen Umfangs der Inspektion wird das Programm falsch beraten und die Fehlerbehandlung fehlbewertet:

 <?php
$mysqli = new mysqli("localhost", "user", "password", "database");

// Fehlerprüfung
if ($mysqli->errno) {
    echo "Fehlercode: " . $mysqli->errno;
} else {
    echo "Keine Fehler";
}
?>

Obwohl das Programm keine Fehler aufweist, kann die Ausgabe aufgrund des Rahmens des Fehlers, was zu Fehleinschätzungen führt.

5. Zusammenfassung: Vermeiden Sie die Verwendung falscher Bereiche

  • MySQLI :: $ errno kann erst nach der Durchführung von SQL -Operationen korrekt überprüft werden.

  • MySQLI :: $ errno hat einen Wert von 0 , bevor Datenbankvorgänge durchgeführt werden. Wenn Sie ihn zu diesem Zeitpunkt überprüfen, erhalten Sie keine gültige Fehlermeldung.

  • Durch die ordnungsgemäße Anwendung können Sie Fehleinschätzungen vermeiden und die Robustheit Ihres Programms sicherstellen.

Hoffentlich kann dieser Artikel Ihnen helfen, zu verstehen, warum das Aufrufen von MySQLI :: $ errno mit dem falschen Bereich Fehleinschätzungen verursacht und einige Vorschläge zur Verhinderung von Fehlern abgeben wird. Wenn Sie weitere Fragen zu PHP oder Datenbank haben, besuchen Sie bitte unsere Website!