PDO (PHP Data Objects) bietet eine standardisierte Schnittstelle für die Interaktion mit verschiedenen Datenbanksystemen. Einige seiner Funktionen können PHP-Entwicklern jedoch unbekannt sein, was zu häufigen Fragen zu vorbereiteten Anweisungen und zur Fehlerbehandlung führt. Dieser Artikel befasst sich mit einer dieser häufig gestellten Fragen:
Um dieses Problem zu beheben, ist es wichtig, die Ausnahmebehandlung von PDO zu aktivieren. Standardmäßig behandelt PDO Fehler wie normale PHP-Fehler, die möglicherweise nicht sichtbar sind. Um Fehler als Ausnahmen zu behandeln, setzen Sie beim Verbindungsaufbau das PDO-Attribut ERRMODE auf PDO::ERRMODE_EXCEPTION. Dadurch kann PDO Ausnahmen bei Datenbankfehlern auslösen und diese für die Fehlerbehandlung verfügbar machen.
Hier ist ein Beispiel für die Einrichtung einer PDO-Verbindung mit Ausnahmebehandlung:
$dsn = "mysql:host=$host;dbname=$db;charset=utf8"; $opt = array( PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, // other options ); $pdo = new PDO($dsn, $user, $pass, $opt);
Mit dieser Einstellung Alle Datenbankfehler werden als Ausnahmen ausgelöst. Diese Ausnahmen können mit try..catch-Blöcken oder einem speziellen Fehlerhandler abgefangen werden. Nicht erfasste Ausnahmen fungieren als reguläre PHP-Fehler und folgen den Site-weiten Fehlerberichtseinstellungen.
Es ist wichtig sicherzustellen, dass PHP-Fehler sichtbar sind. Auf Produktionsservern empfiehlt es sich, Fehler zu protokollieren, anstatt sie auf dem Bildschirm anzuzeigen. Dies kann durch folgende Einstellung erreicht werden:
error_reporting(E_ALL); ini_set('display_errors', 0); ini_set('log_errors', 1);
Auf Entwicklungsservern kann es bequemer sein, Fehler auf dem Bildschirm anzuzeigen:
error_reporting(E_ALL); ini_set('display_errors', 1);
Vermeiden Sie immer die Verwendung des Fehlerunterdrückungsoperators (@ ) vor PDO-Anweisungen, da dadurch wichtige Fehlerinformationen ausgeblendet werden können.
Das obige ist der detaillierte Inhalt vonPDO-Abfrage schlägt stillschweigend fehl: Wie erhalte ich PDO-Fehlermeldungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!