remplacement avec SET problème avec l'ID

Eléphanteau du PHP | 13 Messages

07 sept. 2010, 09:48

Bonjour,

Quelque chose m'échappe dans ma requête. Je n'arrive pas à trouver mon erreur .
Le problème se trouve au niveau de la dernière ligne.
Ma variable $id est la seule de type SMALLINT les autres sont des variables TEXT
Si je remplace $id par, par exemple, "3" le problème reste le même
  $sql = 'UPDATE personnes
            SET continent   = "'.$continent.'", 
	          pays     = "'.$pays.'",
		  adresse    = "'.$adresse.'",
           WHERE numero = "'.$id.'" ' ;
Un autre test fait directement dans la console d'adiministration PhpMyAdmin
 UPDATE `distributeurs` SET  `continent` = ASIE,
`pays` = CHINE,
WHERE `numero` =2 
Le problème reste le même la dernière ligne ne fonctionne pas

Eléphant du PHP | 86 Messages

07 sept. 2010, 10:45

Salut,

Il te manque les quotes et il y a une virgule de trop avant le where :
Remplace la construction de ta requête par ceci :
$sql = "UPDATE personnes SET continent = '".$continent."', pays = '".$pays."', adresse = '".$adresse."' WHERE numero = '".$id."'";

Eléphant du PHP | 55 Messages

07 sept. 2010, 18:16

Bonjour,

Inutile de concaténer les variables avec l'utilisation des double quotes. D'autre part, l'id étant de type int, les quotes ne sont pas nécessaires non plus; la syntaxe devient ainsi beaucoup plus lisible :
$sql = "UPDATE personnes SET continent = '$continent', pays = '$pays', adresse = '$adresse' WHERE numero = $id";