Behandeln von MySQLi-Abfragefehlern als Ausnahmen
Einführung
In MySQLi treten Abfragefehler typischerweise auf als Warnungen oder Fehlermeldungen gemeldet. Entwickler ziehen es jedoch möglicherweise vor, diese Fehler zur besseren Fehlerbehandlung in Ausnahmen umzuwandeln. Dieser Artikel untersucht den Prozess der Umwandlung von MySQLi-Abfragefehlern in Ausnahmen und befasst sich mit einem häufigen Problem, bei dem Abfragefehler „false“ zurückgeben, ohne Warnungen oder Ausnahmen auszulösen.
Problem
Bei der Ausführung von MySQLi Bei Abfragen überprüfen Entwickler häufig, ob mysqli_query() „false“ zurückgegeben hat, um Abfragefehler zu erkennen. Dieser Ansatz kann jedoch umständlich sein und unerwartete Fehler werden möglicherweise nicht immer erkannt.
Ehemaliger Code
$result = mysqli_query($DBlink, $SQL); if ($result === false) { throw new MySQLiQueryException($SQL, mysqli_error($DBlink), mysqli_errno($DBlink)); }
Frage
Warum werden in manchen Fällen weder Warnungen noch Ausnahmen ausgelöst, wenn eine Abfrage fehlschlägt, was Entwickler dazu zwingt, explizit nach einer falschen Rückgabe zu suchen? Werte aus mysqli_query()?
Antwort
Um Ausnahmen für MySQLi-Abfragefehler zu aktivieren, müssen Sie die Fehlerberichtsebene mithilfe der Funktion mysqli_report() korrekt festlegen. Der folgende Codeausschnitt demonstriert die ordnungsgemäße Verwendung:
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
Durch Festlegen der Fehlerberichtsebene auf MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT, MySQLi beginnt, Ausnahmen für alle Fehler und strikten Fehler auszulösen, einschließlich Abfragefehlern.
Achtung
Die Verwendung von Ausnahmen zur Fehlerbehandlung wird zwar allgemein empfohlen, ist aber wichtig um eine übermäßige Verwendung von Try-Catch-Blöcken zu vermeiden. Die Fehlerbehandlung sollte durch einen gemeinsamen Fehlerhandler zentralisiert werden, um das Aufblähen des Codes zu minimieren und eine konsistente Fehlerberichterstattung sicherzustellen.
Das obige ist der detaillierte Inhalt vonWarum schlagen MySQLi-Abfragen manchmal stillschweigend fehl und erfordern explizite Überprüfungen falscher Rückgabewerte?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!