2013-05-30 3 views
0

Je suis la table mise à jour quand je lance cette requête, il donne une erreur:impossible de supprimer la syntaxe SQL UPDATE requête

client.query('UPDATE Campaign SET (Name, StartDate) VALUES ("' +req.body.Name+ '" , "' +req.body.StartDate+ '") WHERE idCampaign = ' +id , function(err, result) { 
    if(err) { 
     console.log("err found" + err); 
    } 
    else{ 
     console.log(result); 
     res.send(result[0]) 
    } 

}); 

ER_PARSE_ERROR: 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 '(Name, StartDate) VALUES ("" , "") WHERE idCampaign = 89126b2d-c906-11e2-9cf' 

Je ne sais pas où l'erreur est

Répondre

1

Selon la description de l'erreur, idCampaign est une chaîne et non un numéro, vous devez donc utiliser des guillemets. Essayez avec cette

... WHERE idCampaign = '" + id + "'" 

EDIT

Je suis totalement manqué que votre déclaration UPDATE était tout faux, je viens de payer l'attention sur le message d'erreur. @RedBaron est correct mais vous devez toujours utiliser les guillemets sur id. Essayez avec ceci

"UPDATE Campaign SET Name='" + req.body.Name + "', StartDate = '" + req.body.StartDate+ "' WHERE idCampaign = '" + id + "'" 
+0

Je vous écris cette client.query de requête ('UPDATE Campagne SET Name =' + req.body.Name + 'StartDate =' + req .body.StartDate + 'OÙ idCampaign = "' + id + '"', la fonction (err, résultat) { if (err) { console.log ("err trouvé" + err);} else { console.log (résultat); res.send (résultat [0]) } }); – ana

+0

et toujours l'erreur @Claudio Redi – ana

+0

@ana: mis à jour ma réponse –

1

Ce n'est pas ainsi qu'une instruction de mise à jour est utilisée dans MySQL. Regardez le Documentation

De façon générale la requête doit être comme

'UPDATE Campaign SET Name=' + req.body.Name +', StartDate ='+req.body.StartDate+ ' WHERE idCampaign = ' + id 
+0

Je reçois toujours l'erreur: – ana

+0

Vous avez une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à votre version du serveur MySQL pour la bonne syntaxe à utiliser près de 'WHERE idCampaign = 351adc56-c906-11e2-9cfa-74867a028324' à la ligne 1 @RedBaron – ana

+0

@ana Je pense que vous devriez imprimer la requête en tant que chaîne, avant de le passer à 'client.query'. Cela vous aidera à mieux le déboguer. Comme Claudio l'a souligné dans sa réponse, il vous manque probablement des citations (d'autant plus que la date est censée être citée) – RedBaron