Mettre une variable dans un requète sql [Résolu/Fermé]

Signaler
-
 le père -
Bonjour,
Voila j'ai un pb avec un requête sql,
voila mon bout de code :
mysql_query("UPDATE base SET $nbr='$ex' WHERE id='$id'");
Voila ma question je sais que $ex et $îd sont OK mais est ce que j'ai le droit de mettre la variable $nbr comme je l'ai mise la
Merci pour vos réponse

10 réponses

Si tu as eu l'idée biscornue de donner un nombre comme nom de champ, il faut le mettre entre accents graves pour que mysql ne le prenne pas pour un nombre
mysql_query("UPDATE base SET `$nbr`='$ex' WHERE id='$id'")

Personnellement je mets systématiquement les noms de tables et de champs entre accents graves. Tu peux essayer aussi d'appeler un champ avec un mot réservé du mysql pour voir ce que ça donne.
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 64590 internautes nous ont dit merci ce mois-ci

Messages postés
2140
Date d'inscription
jeudi 29 janvier 2009
Statut
Membre
Dernière intervention
7 mars 2013
484
non car elle ne sera pas prise en compte car vous avez oublié la concaténation :

mysql_query("UPDATE base SET ".$nbr."='".$ex."' WHERE id='".$id."'");
Merci de votre reponse mais cela ne marche toujours pas
Bonjour

Si, tu avais tout à fait le droit. Il n'y a aucune concaténation à faire, tu peux utiliser un nom de variable directement à l'intérieur d'une chaîne entre " ", c'est un des principes de base du PHP.
Mais pour que mysql_query l'accepte, il faut que ça donne une requête valable, c'est à dire entre autres que $nbr soit un nom de champ.

Peux tu faire
mysql_query("UPDATE base SET $nbr='$ex' WHERE id='$id'") or die (mysql_error());
Pour récupérer un message d'erreur ?
Messages postés
2140
Date d'inscription
jeudi 29 janvier 2009
Statut
Membre
Dernière intervention
7 mars 2013
484
Encore un truc que je ne savais pas ^^
Le pire c'est que je l'avais déjà utilisé héhéhé, j'ai une super mémoire...
Messages postés
38
Date d'inscription
mardi 22 juillet 2008
Statut
Membre
Dernière intervention
31 décembre 2009
7
Je l'ai fait mais il ne me sort aucun erreur
merci de votre reponse
Par contre je vien de pensée a une chose ma variable et un chiffre eske j'ai le droit de mettre un chiffre a cette endroit de la requète
Non, tu n'as pas droit à un chiffre à cet endroit. Ça voudrait dire quoi, SET 3='toto' ?
Messages postés
38
Date d'inscription
mardi 22 juillet 2008
Statut
Membre
Dernière intervention
31 décembre 2009
7
Le champ dans ma table s'appelle 1
Messages postés
369
Date d'inscription
dimanche 25 janvier 2009
Statut
Membre
Dernière intervention
28 janvier 2013
28
alors
$nbr=(string)$nbr; ??
Messages postés
38
Date d'inscription
mardi 22 juillet 2008
Statut
Membre
Dernière intervention
31 décembre 2009
7
dsl je ne comprend pas
Messages postés
369
Date d'inscription
dimanche 25 janvier 2009
Statut
Membre
Dernière intervention
28 janvier 2013
28
tu castes ta variable (tu lui dit que c'est un String),
sinon plus simple
$temp=$nbr.'';
mysql_query("UPDATE base SET $temp='$ex' WHERE id='$id'");
Messages postés
38
Date d'inscription
mardi 22 juillet 2008
Statut
Membre
Dernière intervention
31 décembre 2009
7
Merci pour tt vos solution je vais essayé
Messages postés
369
Date d'inscription
dimanche 25 janvier 2009
Statut
Membre
Dernière intervention
28 janvier 2013
28
:), c'est vrai que c'est biscornu,..
Messages postés
38
Date d'inscription
mardi 22 juillet 2008
Statut
Membre
Dernière intervention
31 décembre 2009
7
c'est biscornu mais sa marche merci a tous après 4h de galère sa marche merci a tous et a ccm
>
Messages postés
38
Date d'inscription
mardi 22 juillet 2008
Statut
Membre
Dernière intervention
31 décembre 2009

Mais si ça n'avait pas été biscornu, il n'aurait pas fallu 4h ! ;-)
Bon courage pour la suite