Page 1 sur 1

probleme de variable dans une requete

Posté : 15 mars 2017, 12:26
par vashh
Bonjour à tous, je viens vers vous pour un problème que je n'arrive pas à résoudre. Je fais une requête a partir d'une référence stockés dans la variable $toto.

Code : Tout sélectionner

$reponse = $bdd->query("SELECT id, reference, quantite, emplacement FROM tolerie WHERE reference=$toto order by date limit 1");
Le problème est le suivant, ce code fonctionne quand la référence est du type "123456" mais lorsque le code est par exemple "U123456", le code me renvoie une erreur. JE n'arrive pas à me sortir de cette situation et surtout je ne comprends pas d'où vient l'erreur.

Cordialement.

Re: probleme de variable dans une requete

Posté : 15 mars 2017, 12:32
par @rthur
Bonjour,

Fait un echo de ta requête et teste là dans phpmyadmin

Re: probleme de variable dans une requete

Posté : 15 mars 2017, 12:53
par vashh
Voilà le résultat :

SELECT id, reference, quantite, emplacement FROM tolerie WHERE reference=U123456 order by date limit 1

MySQL a répondu: Documentation
#1054 - Unknown column 'U123456' in 'where clause'

Pour info j'ai fait pareil avec la référence 123456 et ça fonctionne bien.

Re: probleme de variable dans une requete

Posté : 15 mars 2017, 13:21
par moogli
salut,

c'est parce que c'est une chaîne de caractère que tu doit utiliser et en SQL une chaîne de caractère est délimitée par des '
donc 'U1231'

si cela fonctionne juste avec 13456 il y a des grandes chances que
- la colonne reference soit un entier
- ou que le SGBD soit sympa et face un autoboxing int -> string

dans tout les cas il est préférable de respecter la syntaxe SQL et d'utiliser des ' lorsque l'on à affaire à un champ de type varchar


@+

Re: probleme de variable dans une requete

Posté : 15 mars 2017, 15:12
par vashh
La colonne référence est du type tinytext.
J'ai ajouté des ' ' autour de ma variable et ça fonctionne.
Merci beaucoup !

Re: [RESOLU] probleme de variable dans une requete

Posté : 15 mars 2017, 15:40
par moogli
Modération :
Si ta question est résolue, pense à l'indiquer pour que les futures personnes qui voudront consulter ce sujet sachent qu'il contient une solution.
Tu peux réaliser cette opération toi-même en cliquant sur le bouton "Résolu" situé en haut de la page.


bon j'suis sympa je l'ai pour toi :mrgreen: :mrgreen: