Problème en php

snow.alex Messages postés 159 Statut Membre -  
avion-f16 Messages postés 20367 Statut Contributeur -
Bonjour,
J'ai un problème avec un code php :


<?php

$force2 = $force+1;

mysql_query("UPDATE membres SET force='$force2', pieces='pieces-1' WHERE pseudo='$pseudo' ") or die ('Erreur : '.mysql_error());

?>

Or, quand je lance ce script, voici le code d'erreur que j'ai :

Erreur : 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='2' WHERE pseudo='pseudo'' at line 1


J'ai tout essayé, avec les guillemets, sans les guillemets, en déplaçant une virgule, tout, mais ce code d'erreur revient tout le temps.

Pouvez vous m'aider svp ?
A voir également:

3 réponses

crapoulou Messages postés 42844 Statut Modérateur, Contributeur sécurité 8 013
 
Salut,

Si ton champ force2 de la base est numérique (ce qui est certainement le cas, pas besoin des ' ' autour de ta variable !
0
snow.alex Messages postés 159 Statut Membre 11
 
Ok alors je remplace avec ca :

$force2 = $force+1;
$npieces = $pieces - $prix;
mysql_query("UPDATE membres SET force=$force2, pieces=$npieces WHERE pseudo='$pseudo' ") or die ('Erreur : '.mysql_error());


Et ca me met ca :

Erreur : 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=2, pieces=1882 WHERE pseudo='pseudo'' at line 1
0
avion-f16 Messages postés 20367 Statut Contributeur 4 509
 
Salut.

"FORCE" est un mot-clé en SQL, il faut donc échapper l'échapper. (c'est une habitude que je te conseil de prendre pour les noms de tables et de champs dans tes requêtes).

Pour l'échapper, il suffit de l'entourer d'accent grâve seuls.
https://gist.github.com/anonymous/257ee3d4a55add0e758d
(je suis obligé de passer par un site externe, CCM remplace les accents grâves seuls par des apostrophes)
0