Dat is de meest voorkomende mythe over SQL-foutopsporing. "Ik moet de query na voorbereiding zien om te kunnen zien of er een fout is opgetreden". Het feit is, jij niet , en ik zal je vertellen waarom.
Zodra een zoekopdracht is voorbereid, kan de tijdelijke aanduiding worden beschouwd als een geldige tekenreeks/integer . Het maakt je niet uit wat erin zit.
Als u PDO correct instelt, krijgt u ook een gedetailleerde PDOException
detaillering van de fout die je hebt gehad, samen met een volledige backtrace van waar de fout is opgetreden, plus je krijgt de foutreeks van MySQL, waardoor syntaxisfouten heel gemakkelijk te vinden zijn.
Om PDO-uitzonderingen in te schakelen en geëmuleerde voorbereidingen uit te schakelen:
$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);