Requete SQL préparée

Par Robinos, il y a 10 ans


Bonjour,

Voila je rencontre un petit problème avec mon code. Cela fait longtemps que je n'ai pas fait de PHP, alors je galère sur quelque chose de très facile....
Je cherche a récupérer l'ID d'un code partenaire en fonction d'une valeur rentrée par l'utilisateur.
Sauf que si cette valeur contient un " . ", la requete ne marche pas :(

$db->query('SELECT ID FROM partners WHERE code = ?', [$code_partners])->fetch();

Et si je mets des doubles ou simples quotes (", '); il survient l'erreur :
En sachant que pour l'exemple, NOZE.TV est un test de nom avec un point.

.1054 - Unknown column 'NOZE.TV' in 'where clause'

Par contre, si je mets des doubles ou simples quotes dans la requete SLQ en PHP, c'est une autre erreur qui survient.

Parse error: syntax error, unexpected '?'

Il faudrais "juste" pouvoir rentrer une valeur avec un point dans un la requete SQL pour permettre l'ajout de code.

Bonne journée à vous,
Cordialement

1 réponse

Gaspard, il y a 10 ans

Hello !

En fait ce que tu fais n'est pas une "requête préparée", vu qu'il n'y a pas prepare() dedans :D

Tu as essayé ça ?

$req = $db->prepare("SELECT ID FROM partners WHERE code = :code"); $req->bindParam(':code', $code_partners, PDO::PARAM_STR); $req->execute();

Bonne journée !
Gasp.