Abfragefehler aus PDO Prepare() in PHP abrufen
Bei Verwendung der Methode prepare() in PDO PHP Um eine Datenbankabfrage vorzubereiten, ist es wichtig, potenzielle Fehler zu behandeln. Das in der Frage genannte Originalbeispiel konnte Abfragefehler nicht effektiv behandeln.
Um korrekt auf Abfragefehler zu prüfen, führen Sie die folgenden Schritte aus:
1. Konfigurieren Sie die PDO-Fehlerbehandlung:
Setzen Sie den PDO-Fehlerbehandlungsmodus auf PDO::ERRMODE_EXCEPTION mithilfe der Methode setAttribute():
$st = $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Dadurch wird PDO angewiesen, Ausnahmen für Datenbankfehler auszulösen, was die Identifizierung und Behandlung erleichtert sie.
2. Emulation deaktivieren:
Deaktivieren Sie die Funktion PDO::ATTR_EMULATE_PREPARES, indem Sie ihren Wert auf false setzen:
$st = $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
Dies deaktiviert a PHP-Emulationsschicht, die sicherstellt, dass der MySQL-Server Abfragen unmittelbar nach dem Aufruf analysiert prepare().
3. Ausnahmen abfangen:
Da die Methode prepare() jetzt Ausnahmen für Fehler auslöst, verwenden Sie „Try-Catch“-Blöcke, um diese zu behandeln:
try { $st = $db->prepare('INSERT INTO DoesNotExist (x) VALUES (?)'); } catch (PDOException $e) { echo "Error: " . $e->getMessage(); }
Dieser Code gibt die folgende Fehlermeldung aus, wenn auf die nicht vorhandene Tabelle DoesNotExist verwiesen wird:
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'test.doesnotexist' doesn't exist
Das obige ist der detaillierte Inhalt vonWie kann ich Abfragefehler effektiv behandeln, wenn ich PDO Prepare() in PHP verwende?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!