2010-02-17 7 views
1

Je souhaite que tous les champs ayant une certaine valeur soient remplacés par une valeur différente.changer un champ dans la table mysql?

mais mon code m'a donné une erreur

 UPDATE maps 
    SET city_id = $new_id 
    WHERE city_id = $old_id 

vous ne pouvez pas l'écrire comme ça?

Je reçois ce code d'erreur:

Couldn't execute query: 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 '' at line 3 
+1

YOu probablement vous devez inclure '" $ newName "' entre guillemets. –

+0

effectivement ceux qui devraient être id ... je le change – ajsie

+1

Le problème est d'essayer de remplacer la valeur que vous utilisez pour trouver l'enregistrement avec –

Répondre

1
$query = "UPDATE maps 
SET city_id = '$new_id' 
WHERE city_id = '$old_id'"; 

Autre exemple here

+0

s'il vous plaît lire ma question mise à jour – ajsie

+0

Même correctif juste besoin de guillemets simples ajoutés autour de chaque var. – Gabe

+0

Je pensais que vous n'avez pas besoin de guillemets simples autour de INT? – ajsie

1

Si vos identifiants sont des entiers, assurez-vous qu'il n'y en a pas qui sont nuls, puisque la commande

UPDATE maps SET city_id=4 WHERE city_id= 

échouera, tandis que

UPDATE maps SET city_id='4' WHERE city_id='' 

ne manquera pas, mais ne sera pas mise à jour probablement rien, présumant city_id est la clé primaire de votre table et toutes les lignes sont censés avoir un, donc nul n'y aura city_id égal à une chaîne vide. Si vous obtenez toujours une erreur, demandez à votre script de répercuter la chaîne SQL complète (après le remplacement des variables par des valeurs) pour voir s'il existe une entrée inhabituelle dans vos variables.

Questions connexes