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);
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);
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!