Heim > Backend-Entwicklung > PHP-Tutorial > Warum werden meine PDO-Fehlermeldungen nicht angezeigt?

Warum werden meine PDO-Fehlermeldungen nicht angezeigt?

Susan Sarandon
Freigeben: 2024-12-24 20:45:10
Original
924 Leute haben es durchsucht

Why Aren't My PDO Error Messages Showing Up?

So erhalten Sie Fehlerinformationen von PDO

Bei der Verwendung von PDO kann es vorkommen, dass Fehlermeldungen trotz der Einstellung nicht angezeigt werden Fehlermodus auf PDO::ERRMODE_WARNING oder PDO::ERRMODE_EXCEPTION. In diesem Artikel werden die Gründe für dieses Verhalten untersucht und Lösungen zur Behebung des Problems bereitgestellt.

Grundlegendes zur Einstellung des Fehlermodus

PDO bietet drei Optionen für Fehlermodi: PDO ::ERRMODE_SILENT, PDO::ERRMODE_WARNING und PDO::ERRMODE_EXCEPTION. Standardmäßig arbeitet PDO im PDO::ERRMODE_SILENT-Modus, der alle Fehlermeldungen unterdrückt. Wenn Sie den Modus auf PDO::ERRMODE_WARNING setzen, zeigt PDO Fehlermeldungen als PHP-Warnungen an, während PDO::ERRMODE_EXCEPTION Ausnahmen für Fehler auslöst.

Beispielszenario

In Ihrem Beispielcode: Sie versuchen, eine ungültige SQL-Anweisung vorzubereiten (@$%T$!!!) und können keinen Fehler abrufen Nachrichten. Dies liegt daran, dass emulierte vorbereitete Anweisungen, die standardmäßig verwendet werden, während der Prepare()-Phase keine Syntaxprüfungen durchführen. Daher werden Fehler nur während der Phase „execute()“ erkannt.

Lösung

Um dieses Problem zu beheben, sollten Sie sicherstellen, dass Ihr MySQL-Treiber native vorbereitete Anweisungen unterstützt . Native vorbereitete Anweisungen führen während der Prepare()-Phase Syntaxprüfungen durch, sodass Sie Fehler umgehend erkennen können. Um native vorbereitete Anweisungen zu aktivieren, fügen Sie die folgende Zeile zu Ihrem Code hinzu:

$dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
Nach dem Login kopieren

Zusätzlich können Sie die setAttribute()-Methode verwenden, um den Fehlermodus auf PDO::ERRMODE_EXCEPTION festzulegen. Dies führt dazu, dass PDO Ausnahmen für Fehler auslöst, wodurch es einfacher wird, diese in Ihrem Code zu behandeln.

$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Nach dem Login kopieren

Durch die Verwendung nativer vorbereiteter Anweisungen und das Festlegen des Fehlermodus auf PDO::ERRMODE_EXCEPTION können Sie sicherstellen, dass PDO stellt detaillierte Fehlermeldungen bereit, sodass Sie alle datenbankbezogenen Probleme effektiv diagnostizieren und beheben können.

Das obige ist der detaillierte Inhalt vonWarum werden meine PDO-Fehlermeldungen nicht angezeigt?. 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