Heim > Datenbank > MySQL-Tutorial > Wie kann ich SQL-Fehler aus PDO-vorbereiteten Anweisungen in PHP abrufen?

Wie kann ich SQL-Fehler aus PDO-vorbereiteten Anweisungen in PHP abrufen?

Barbara Streisand
Freigeben: 2024-12-15 20:47:17
Original
831 Leute haben es durchsucht

How to Retrieve SQL Errors from PDO Prepared Statements in PHP?

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);
Nach dem Login kopieren

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);
Nach dem Login kopieren

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
}
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage