Mysql
 sql >> Datenbank >  >> RDS >> Mysql

PDO-Debugging - Abfrage nach dem Binden anzeigen?

Das ist der am weitesten verbreitete Mythos über das SQL-Debugging. "Ich muss die Abfrage nach der Vorbereitung sehen, um feststellen zu können, ob ein Fehler aufgetreten ist." Tatsache ist, das tust du nicht , und ich sage dir warum.

Sobald eine Abfrage vorbereitet wurde, kann der Platzhalter als gültige Zeichenfolge/Ganzzahl betrachtet werden . Es ist dir egal, was drin ist.

Wenn Sie PDO korrekt einrichten, erhalten Sie außerdem eine detaillierte PDOException den Fehler, den Sie hatten, zusammen mit einer vollständigen Rückverfolgung, wo der Fehler aufgetreten ist, und Sie erhalten die Fehlerzeichenfolge von MySQL, wodurch Syntaxfehler sehr einfach zu finden sind.

So aktivieren Sie PDO-Ausnahmen und deaktivieren emulierte Vorbereitungen:

$pdo = new PDO("mysql:host=localhost;dbname=database_name", "user", "password");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);