Det är den enskilt vanligaste myten om SQL-felsökning. "Jag behöver se frågan efter förberedelse för att kunna se om ett fel uppstod". Faktum är att det gör du inte , och jag ska berätta varför.
När en fråga har förberetts kan platshållaren betraktas som en giltig sträng/heltal . Du bryr dig inte om vad som finns i den.
Dessutom, om du ställer in PDO korrekt, får du en detaljerad PDOException
beskriver felet du har haft tillsammans med en fullständig spårning av var felet inträffade, plus att du får felsträngen från MySQL, vilket gör syntaxfel mycket lätta att hitta.
För att aktivera PDO-undantag och inaktivera emulerade förbereder:
$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);