2 votes

Erreur SQL 1054 - Colonne inconnue dans la clause where - update set where

Dans un bash unix script, j'essaie d'utiliser le code suivant.

mysql -D${DB_SERVER} -u${DB_USER} -p${DB_PASS} -s -se "\
UPDATE ${DB_VIEW} \
SET wikiid = ${WIKIID} \
WHERE hostname = ${SERVER} "

Cela conduit à l'erreur suivante.

ERREUR 1054 (42S22) à la ligne 1 : Colonne inconnue 'X123456789' dans la clause 'where'.

Des idées ? Je suis en train de perdre la tête.

0voto

sebastianbrosch Points 3633

Vous devez échapper les valeurs avec des ticks simples. ' :

mysql -D${DB_SERVER} -u${DB_USER} -p${DB_PASS} -s -se "\
  UPDATE ${DB_VIEW} \
  SET wikiid = '${WIKIID}' \
  WHERE hostname = '${SERVER}' "

MySQL interprète la valeur X123456789 (de ${WIKIID} o ${SERVER} ) comme nom de colonne puisqu'il n'est pas échappé comme chaîne de caractères.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X