Alors ce bug ?!?!? Rien capté ... [Résolu]

Signaler
Messages postés
39
Date d'inscription
jeudi 27 mai 2004
Statut
Membre
Dernière intervention
18 février 2008
-
Messages postés
39
Date d'inscription
jeudi 27 mai 2004
Statut
Membre
Dernière intervention
18 février 2008
-
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

Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
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.
Messages postés
39
Date d'inscription
jeudi 27 mai 2004
Statut
Membre
Dernière intervention
18 février 2008
3
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