Alors ce bug ?!?!? Rien capté ...

Résolu
cs_Tartuffe Messages postés 39 Date d'inscription jeudi 27 mai 2004 Statut Membre Dernière intervention 18 février 2008 - 8 sept. 2006 à 13:47
cs_Tartuffe Messages postés 39 Date d'inscription jeudi 27 mai 2004 Statut Membre Dernière intervention 18 février 2008 - 8 sept. 2006 à 15:51
Hello tous..


Je viens de tomber sur un truc Extra, et je ne trouve pas d'explication !


1/ j'ai une table pays dont l'ID unique est R_O_ID

2/ j'ai une table utilisateur dont l'ID unique est U_ID

3/ Dans cette table j'ai un champ R_O_ID qui est une FK de pays


Quand je fais "update utilisateur set R_O_ID<gras>55 where U_ID 100086</gras>", ce ne met pas forcément à jour

Quand je fais " update utilisateur set R_O_ID=237 where U_ID = 100086 ", ce ne met jamais à jour

Quand je fais "update utilisateur set R_O_ID =236 where U_ID = 100086", ce ne met pas forcément à jour


J'ai modifié ma requête comme suit : update utilisateur set R_O_ID='55' where U_ID = 100086 limit 1

Et là ca fonctionne tout le temps, quelle que soit l'ID du pays...


C'est normal ?

Quelqu'un peut m'expliquer ?

PekLandais

2 réponses

FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
8 sept. 2006 à 15:04
Moi je sais, moi je sais, moi je sais :p

Regarde bien comment t'écris tes requètes :
update utilisateur set R_O_ID=55 where U_ID = 100086
R_O_ID est ici un INTEGER, soit un entier, comme U_ID.

update utilisateur set R_O_ID=237 where U_ID = 100086
pareil

update utilisateur set R_O_ID=236 where U_ID = 100086
pareil


update utilisateur set R_O_ID='55' where U_ID = 100086 limit 1
Plus maintenant !!! R_O_ID est un champ de type VARCHAR !
Alors, soit tu mets ton champ en tant que VARCHAR (mais beurk) et tu mets des guillemets, soit en INTEGER et tu vires les guillemets.

Le LIMIT n'est absolument pas l'élément qui fait marcher ta requète car U_ID est unique donc pas de problème sur la limitation d'enregistrement à modifier.

Voila.
3
cs_Tartuffe Messages postés 39 Date d'inscription jeudi 27 mai 2004 Statut Membre Dernière intervention 18 février 2008 3
8 sept. 2006 à 15:51
Cependant...

MySQL via la reket PHP n'acceptait pas l'ID entre guillemets ('id').
Cependant, avec LIMIT 1, ca fonctionne, alors que sans, c'est aléatoire.

Je ne sais pas ce qu'il a contre le 237 ^^

Merci

PekLandais
0
Rejoignez-nous