Heim > Backend-Entwicklung > PHP-Tutorial > Wie behandelt man PDO Prepare Statement-Fehler in PHP richtig?

Wie behandelt man PDO Prepare Statement-Fehler in PHP richtig?

DDD
Freigeben: 2024-12-07 04:56:10
Original
834 Leute haben es durchsucht

How to Properly Handle PDO Prepare Statement Errors in PHP?

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

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

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!

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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage