Heim > Backend-Entwicklung > PHP-Tutorial > Warum lösen meine MySQLi-Abfragen keine Ausnahmen aus und wie kann ich das beheben?

Warum lösen meine MySQLi-Abfragen keine Ausnahmen aus und wie kann ich das beheben?

Patricia Arquette
Freigeben: 2025-01-03 19:12:39
Original
727 Leute haben es durchsucht

Why Aren't My MySQLi Queries Throwing Exceptions, and How Can I Fix It?

Verbesserung der Fehlerbehandlung mit MySQLi-Ausnahmen

Beim Versuch, die Fehlerbehandlung zu vereinfachen, stoßen Sie auf Schwierigkeiten bei der Konvertierung von MySQLi-Abfragefehlern in Ausnahmen .

Problembeschreibung:

Trotz Bei Verwendung von mysqli_report(MYSQLI_REPORT_STRICT) in Verbindung mit prozeduralen MySQLi-Funktionen innerhalb einer benutzerdefinierten Wrapper-Klasse führen Abfragefehler immer noch dazu, dass weder Warnungen noch Ausnahmen ausgelöst werden, was manuelle Überprüfungen der Rückgabewerte für mysqli_query() erforderlich macht.

Antwort:

Um dieses Problem zu beheben und MySQLi zum Auslösen zu zwingen Ausnahmen verwenden Sie die folgende Zeile:

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
Nach dem Login kopieren

Erklärung:

Das Standardverhalten von mysqli_report() besteht darin, sowohl Warnungen als auch Fehler zu melden. Durch das Setzen des Flags MYSQLI_REPORT_ERROR wird MySQLi jedoch angewiesen, nur Fehler zu melden, was dem gewünschten Verhalten beim Auslösen von Ausnahmen entspricht.

Wichtiger Hinweis:

Vermeiden Sie das Umschließen von „Every“. Abfrage in einem Try-Catch-Block, da es als bewährte Methode gilt, einen standortweiten Fehlerhandler zu verwenden, um die meisten Fehler zu verwalten, anstatt Umgang mit ihnen an bestimmten Orten.

Das obige ist der detaillierte Inhalt vonWarum lösen meine MySQLi-Abfragen keine Ausnahmen aus und wie kann ich das beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage