|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Nouveau Membre du Club
![]() |
Salut,
je rencontre une erreur etrange avec une de mes requetes. Il s'agit d'une UPDATE. Le premier champs que j'update est set a 0 des que je la lance, meme si sa valeur reste la meme. Quand je fais ca: Code :
Des que j'update plusieurs champs, comme ceci par exemple: Code :
Pouvez vous m'eclairer ? Merci, Cyril |
||||
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 657 ![]() |
bonjour,
Dommage que MySql ne gère pas un minimum correctement les erreurs de syntaxes ... il ne faut pas mettre un AND mais une virgule entre vos différentes colonnes à updater. |
|
|
00
|
|
|
#3 | |
|
Membre Expert
![]() Eric DureuilDéveloppeur informatique Inscription : avril 2011 Messages : 874 ![]() |
Citation:
pour mysql, cels a voulu dire: "met à jour la colonne CA_FIRSTNAME avec la valeur 'laurent' AND CA_LASTNAME='dupont' (qui vaut 0 puisque cette expression booléenne est fausse) pour les lignes où CA_ID=23 donc c'est comme si cels avait écrit: Code sql :
UPDATE CARD SET CA_FIRSTNAME=0 WHERE CA_ID=23 alors qu'en fait, en effet, il aurait du écrire: Code sql :
UPDATE CARD SET CA_FIRSTNAME='laurent', CA_LASTNAME='dupont' WHERE CA_ID=23 mais syntaxiquement parlant y a bien pas d'erreur... aucun interpréteur de langage ne pourra jamais déterminer si tu marques n'importe quoi, à partir du moment où tout ce qui est marqué est juste syntaxiquement comme dans 99% des cas l'origine de l'erreur est entre le clavier et la chaise pas dans le logiciel
__________________
Eric Dureuil, développeur web, c/c++, java indépendant soyons ![]() pensez à mettre et
|
|
|
|
10
|
|
|
#4 | |||||||
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 657 ![]() |
Bonjour,
Citation:
il manque un test entre laurent et quelque chose pour que cela est un sens quelconque. Enfin, dans l'explication du process c'est effectivement ce qui se passe. Code :
Code :
Code :
|
|||||||
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() Eric DureuilDéveloppeur informatique Inscription : avril 2011 Messages : 874 ![]() |
le problème c'est que des fois ce qui nous parait évident ne l'est pas pour un analyseur syntaxique et inversement
![]() normalement je suis d'accord ça devrait lui sortir une erreur sauf si, pour une sombre bizarreté, il le voit comme ça lui... peut être un bug sur les priorités d'opérateurs en fonction de la version de mysql... je crois que tu peux régler certaines conversion implicite...ou le niveau d'erreur ou de warning, ce qui peut expliquer la non présence d'erreur chez lui bref, on en revient au problème de départ... quand on lit pas la syntaxe des commandes dans la doc officielle (google, est ton ami... ou un autre soyons pas sectaire), on pleure ensuite...
__________________
Eric Dureuil, développeur web, c/c++, java indépendant soyons ![]() pensez à mettre et
|
|
|
00
|
|
|
#6 |
|
Nouveau Membre du Club
![]() |
Salut,
merci en tout cas, ct bien une erreur de ma part. C'est vrai que si j'avais eu un message ca m'aurait saute aux yeux. Mais comme vous dites, la syntax etait correcte... Mais c resolu ! Merci a tous. Cyril |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com