Heim >Backend-Entwicklung >PHP-Tutorial >Warum lösen MySQLi-Abfragen selbst mit „mysqli_report(MYSQLI_REPORT_STRICT)' keine Ausnahmen aus?

Warum lösen MySQLi-Abfragen selbst mit „mysqli_report(MYSQLI_REPORT_STRICT)' keine Ausnahmen aus?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-31 07:24:11265Durchsuche

Why Don't MySQLi Queries Throw Exceptions Even with `mysqli_report(MYSQLI_REPORT_STRICT)`?

Ausnahmen für MySQLi-Abfragefehler

Frage

Trotz der Einstellung mysqli_report(MYSQLI_REPORT_STRICT) lösen Abfragefehler in MySQLi keine Ausnahmen aus. mysqli_sql_Exception wird nur bei Verbindungsfehlern ausgelöst. Ist es normal, den Rückgabewert von mysqli_query() manuell zu prüfen, um Abfragefehler zu erkennen?

Antwort

Ja, eine manuelle Überprüfung ist oft notwendig, weil:

  1. mysqli_report(): Aufruf von mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); ermöglicht das Auslösen von Ausnahmen.
  2. Try-Catch: Entgegen der landläufigen Meinung sollten Ausnahmen nicht übermäßig verwendet werden. Die meisten Fehler sollten zentral von einem standortweiten Fehlerhandler behandelt werden.

Ehemaliger Code:

$result = mysqli_query($DBlink, $SQL);
if($result === false) {
    throw new MySQLiQueryException($SQL, mysqli_error($DBlink), mysqli_errno($DBlink));
}

Verwenden Sie Try-Catch stattdessen nur sparsam Fehler, die sofortige Aufmerksamkeit erfordern.

Das obige ist der detaillierte Inhalt vonWarum lösen MySQLi-Abfragen selbst mit „mysqli_report(MYSQLI_REPORT_STRICT)' keine Ausnahmen aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn