2010-10-19 7 views
0

J'ai une commande PHP sql qui met à jour un enregistrement.SQL: valeur d'erreur de requête UPDATE utilisée pour la colonne

$tsql = "UPDATE cplinktable SET bmsid = $bmsid, autotaskid = $autotaskid, waspdb = $waspdb, cpid = $cpid WHERE id = $id"; 

Je reçois une erreur:

Invalid column name 'WaspTrackAsset_SFT'. [message] => [Microsoft][SQL Server Native Client 10.0][SQL Server]Invalid column name 'WaspTrackAsset_SFT'.)) 

Y at-il une raison que la valeur de waspdb est utilisé comme une colonne?

grâce,

Jonesy

Répondre

1

Son un __gVirt_NP_NN_NNPS<__ champ de chaîne ou varchar probablement et vous avez besoin dans des guillemets simples. Comme ceci:

$tsql = "UPDATE cplinktable SET bmsid = $bmsid, autotaskid = $autotaskid, waspdb = '$waspdb', cpid = $cpid WHERE id = $id" 
+0

merci! comme c'est embarrassant, je devrais le réaliser! – iamjonesy

3

Si la variable est une chaîne, SQL nécessite des guillemets simples autour:

waspdb = '$waspdb' 

Sinon, il se penchera sur la ligne de source pour une colonne avec le nom de la valeur de $wasdb. La raison pour laquelle est peut-être le plus clairement illustré par un exemple de requête:

update YourTable set col1 = 2*col2 

Cela multiplie col2 par 2; il ne définit pas col1 à '2*col2' :)