Requete update simple ne fonctionne pas O_o

Résolu/Fermé
hotmaskim - 19 mai 2010 à 22:41
 hotmaskim - 20 mai 2010 à 18:12
Bonjour,

Je me fais un petit site perso qui consiste en différentes champs d'une fiche d'un personnage de RPG.
Donc truc basique avec un nom, age, ....

J'ai donc fait un p'tit formulaire pour mettre à jour et ça me crée ma requête mais voila, elle ne fonctionne pas et l'erreur m'indique pas grand chose XD

Voila donc ma requête crée et le message d'erreur:

update perso set nom="Test",taille="1m2",race_id=1,poids="12Kg",alignement_id=1,age=12,traits="test",force=1,expForce=1,agilite=2,expAgilite=2,intelligence=3,expIntelligence=3,perception=4,expPerception=4,sagesse=5,expSagesse=5,vitalite=12,ptsVie=20,seuilVital=2,mana=10,destine=1,or=12,argent=12,selsNoirs=31,langue_id=1,carquois=" test",classe_id=1,niveau=2,competence="comp",casque="cas",1main="",2main="",armure="",cape="",ceinture="",anneau1="",collier="",anneau2="",gant="",botte="",sac=" ",bouffe=" " where perso_id=1

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'force=1,expForce=1,agilite=2,expAgilite=2,intelligence=3,expIntelligence=3,perce' at line 1


C'est fait en php donc aprés je fais un mysql_query tout bête.

Merci par avance pour votre aide.
A voir également:

5 réponses

re

Merci d'avoir posé ce pb, ça m'a permis de découvrir un peu plus MySQL.

Ton erreur vient du fait que dans ta création de table, tous les noms de tes colonnes ont été encadrés par des apostrophes (sur mon MySQL, j'ai été obligé d'utiliser plutôt ça ' mais je sais pas quel est son nom officiel) alors que dans ton update tu n'encadres plus les noms des colonnes avec des apostrophes.
Les mots réservés de MySQL ont été acceptés dans la création de table parce qu'ils étaient encadrés par des apostrophes, surtout FORCE & OR. Et quand dans ton insert tu ne "protèges" plus ces mots réservés, MySQL rouspète car c'est une utilisation inappropriée de ces mots réservés.
1
Salut

je vois pas d'erreur mais je suis pas un grand guru.
tu pourrais nous poster la structure de ta table, entre autres, pour vérifier que force est bien numérique ?
0
Je te la donne mais je pense que si c'était lié au type du champ, l'erreur devrait me l'indiquer nan ?
0
Ah bah mince il a rien inséré >_<
-
-- Structure de la table 'perso'
--

CREATE TABLE 'perso' (
  'perso_id' int(2) NOT NULL,
  'nom' varchar(50) NOT NULL,
  'taille' varchar(10) NOT NULL,
  'race_id' int(2) NOT NULL,
  'poids' varchar(10) NOT NULL,
  'alignement_id' int(2) NOT NULL,
  'age' int(4) NOT NULL,
  'traits' varchar(200) NOT NULL,
  'force' int(5) NOT NULL,
  'expForce' int(5) NOT NULL,
  'agilite' int(5) NOT NULL,
  'expAgilite' int(5) NOT NULL,
  'intelligence' int(5) NOT NULL,
  'expIntelligence' int(5) NOT NULL,
  'perception' int(5) NOT NULL,
  'expPerception' int(5) NOT NULL,
  'sagesse' int(5) NOT NULL,
  'expSagesse' int(5) NOT NULL,
  'vitalite' int(3) NOT NULL,
  'ptsVie' int(3) NOT NULL,
  'seuilVital' int(3) NOT NULL,
  'mana' int(3) NOT NULL,
  'destine' int(3) NOT NULL,
  'or' int(5) NOT NULL,
  'argent' int(5) NOT NULL,
  'selsNoirs' int(5) NOT NULL,
  'langue_id' int(3) NOT NULL,
  'carquois' varchar(200) NOT NULL,
  'classe_id' int(3) NOT NULL,
  'niveau' int(3) NOT NULL,
  'competence' varchar(300) NOT NULL,
  'casque' varchar(300) NOT NULL,
  '1main' varchar(300) NOT NULL,
  '2main' varchar(300) NOT NULL,
  'armure' varchar(300) NOT NULL,
  'cape' varchar(300) NOT NULL,
  'ceinture' varchar(300) NOT NULL,
  'anneau1' varchar(300) NOT NULL,
  'collier' varchar(300) NOT NULL,
  'anneau2' varchar(300) NOT NULL,
  'gant' varchar(300) NOT NULL,
  'botte' varchar(300) NOT NULL,
  'sac' varchar(500) NOT NULL,
  'bouffe' varchar(500) NOT NULL,
  PRIMARY KEY ('perso_id')
) 
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
En effet, quand je fais
update perso set 'force'=4 where perso_id=1

Cela fonctionne!

Je te remercie de ton aide :)
0