VEUILLEZ LIRE ATTENTIVEMENT LA QUESTION. Ce n'est pas habituel, bête "mon code ne marche pas !!!" question.Fonctionnement de la requête paramétrée par PDO
Quand je lance ce code avec d'erreur destiné
try {
$sth = $dbh->prepare("SELECT id FROM users WHERE name INN(?,?) ");
$sth->execute(array("I'm","d'Artagnan"));
} catch (PDOException $e) {
echo $e->getMessage();
}
Je reçois ce message d'erreur
Vous avez une erreur dans votre syntaxe SQL ... près de 'INN (' I \ 'm', 'd \' Artagnan ')' à la ligne 1
Mais je pensais depuis des années que la requête et les données sont envoyées au serveur séparément et jamais interférer. Ainsi j'ai quelques questions (bien que je doute que n'importe qui ait une réponse ...)
- Où obtient-il une telle représentation de chaîne familière - a cité et a échappé? Fait-il spécialement pour signaler une erreur ou fait-il partie de la requête?
- Comment ça marche en réalité? Substitue-t-il un espace réservé avec des données ou non?
- Existe-t-il un moyen d'obtenir une requête complète, et pas seulement un petit peu, à des fins de débogage?
Mise à jour
mysqli
le fait comme prévu: il renvoie une erreur dit near 'INN(?,?)'
@DrColossos a la réponse, @Cassy a l'explication. –