LEA LA PREGUNTA CUIDADOSAMENTE. No es una tontería habitual "¡mi código no funciona!" pregunta.La forma en que funciona la consulta parametrizada de PDO
Cuando ejecuto este código con la intención de error
try {
$sth = $dbh->prepare("SELECT id FROM users WHERE name INN(?,?) ");
$sth->execute(array("I'm","d'Artagnan"));
} catch (PDOException $e) {
echo $e->getMessage();
}
me sale este mensaje de error
Usted tiene un error en su sintaxis SQL ... cerca de 'INN (' I \ 'm', 'd \' Artagnan ')' en la línea 1
Pero durante años he pensado que la consulta y los datos se envían al servidor por separado y nunca interferir Por lo tanto, tengo algunas preguntas (aunque dudo que alguien haya recibido una respuesta ...)
- ¿De dónde saca una representación de cadena tan familiar - citada y escapada? ¿Se está haciendo especialmente para informar un error o es parte de una consulta real?
- ¿Cómo funciona en la realidad? ¿Sustituye a un marcador de posición con datos o no?
- ¿Hay alguna manera de obtener una consulta completa, no solo un poco, para la depuración?
actualización
mysqli
lo hace como se esperaba: se emite un error dice near 'INN(?,?)'
@DrColossos tiene la respuesta, @Cassy tiene la explicación. –