Problème en php

Fermé
snow.alex Messages postés 150 Date d'inscription mercredi 12 novembre 2008 Statut Membre Dernière intervention 31 août 2011 - 10 juil. 2010 à 11:28
avion-f16 Messages postés 19252 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 10 février 2025 - 10 juil. 2010 à 14:01
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 28193 Date d'inscription mercredi 28 novembre 2007 Statut Modérateur, Contributeur sécurité Dernière intervention 10 mai 2025 8 010
10 juil. 2010 à 11:35
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 150 Date d'inscription mercredi 12 novembre 2008 Statut Membre Dernière intervention 31 août 2011 11
10 juil. 2010 à 11:45
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 19252 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 10 février 2025 4 505
10 juil. 2010 à 14:01
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