So konfigurieren Sie PDO richtig, um Prepare-Query-Fehler in PHP zu behandeln
Beim Ausführen von SQL-Abfragen mit PDO PHP ist es wichtig, Fehler richtig zu behandeln . Die Prepare()-Methode kann MySQL-Fehler generieren, aber die Standardeinstellungen können verhindern, dass diese angezeigt werden.
Fehlermodus festlegen
Zum Erfassen von Fehlern in der Prepare()-Methode , setzen Sie das PDO-Attribut PDO::ATTR_ERRMODE auf PDO::ERRMODE_EXCEPTION. Dadurch werden Ausnahmen ausgelöst, wenn Fehler auftreten.
Emulation deaktivieren
Deaktivieren Sie außerdem die Funktion PDO::ATTR_EMULATE_PREPARES, um sicherzustellen, dass MySQL die Anweisung sofort verarbeitet. Andernfalls wird der Fehler möglicherweise erst bei der Ausführung erkannt.
Beispiel
Das folgende Beispiel zeigt, wie PDO für die ordnungsgemäße Fehlerbehandlung konfiguriert wird:
$pdo = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'localonly', 'localonly'); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); try { $pdo->prepare('INSERT INTO DoesNotExist (x) VALUES (?)'); } catch (PDOException $e) { // Handle the error message $errorMessage = $e->getMessage(); }
Fehlerausgabe
Beim Versuch, eine ungültige Abfrage auszuführen, wird das obige Beispiel gedruckt (oder protokollieren) Sie die Fehlermeldung:
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'test.DoesNotExist' doesn't exist
Das obige ist der detaillierte Inhalt vonWie behandelt man PDO Prepare Statement-Fehler in PHP richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!