Abrufen von SQL-Fehlern in PDO/Prepare in PHP
Zur Überprüfung auf absichtliche Fehler in MySQL-Abfragen mithilfe von prepare()-Methode in PDO PHP, befolgen Sie diese Schritte:
1. Legen Sie das Fehlermodusattribut fest
Setzen Sie das Fehlermodusattribut auf PDO::ERRMODE_EXCEPTION, indem Sie die Methode setAttribute() verwenden, um die Ausnahmebehandlung zu aktivieren. Dies führt dazu, dass die Prepare-Methode eine Ausnahme auslöst, wenn ein Fehler auftritt:
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
2. Emulation deaktivieren
Deaktivieren Sie PDO::ATTR_EMULATE_PREPARES, indem Sie es auf „false“ setzen. Dies ist notwendig, da der MySQL-Server die vorbereitete Anweisung möglicherweise erst bei der Ausführung auswertet, wodurch es schwieriger wird, Fehler zu erkennen:
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
Beispiel:
Der folgende Code bereitet sich vor die Abfrage „SELECT * FROM c6ode“ und löst eine Ausnahme aus, wenn die Tabelle c6ode dies nicht tut exist:
try { $st = $db->prepare("SELECT * FROM c6ode"); } catch (PDOException $e) { // Handle the exception and display the error message }
Ausnahmeausgabe:
Beim Ausführen des obigen Codes (wobei c6ode nicht vorhanden ist) wird eine Ausnahmemeldung ausgegeben, die angibt, dass die Tabelle nicht existiert:
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'test.c6ode' doesn't exist
Das obige ist der detaillierte Inhalt vonWie kann ich SQL-Fehler aus PDO-vorbereiteten Anweisungen in PHP abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!