mysql
  • node.js
  • node-mysql
  • 2013-05-30 82 views 0 likes 
    0

    我更新表,當我運行此查詢它給出錯誤刪除SQL語法:無法更新詢問

    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' 
    

    我不知道哪裏出錯

    回答

    1

    根據錯誤描述,idCampaign是一個字符串,而不是一個數字,所以你需要使用引號。與此

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

    編輯

    我完全錯過了你的UPDATE說法是完全錯誤的嘗試,我只是關注了錯誤信息。 @RedBaron是正確的,但你仍然必須使用id上的引號。試試這個

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

    我寫此查詢client.query( '更新活動集名稱=' + req.body.Name + '起始日期=' + REQ .body.StartDate + 'WHERE idCampaign = 「' + ID + '」',函數(ERR,結果){ 如果(ERR){ 的console.log( 「ERR發現」 + ERR); } 否則{ console.log(result); res.send(result [0]) } }); – ana

    +0

    和stil出現錯誤@Claudio Redi – ana

    +0

    @ana:更新了我的回答 –

    1

    這不是MySQL如何使用更新語句。看看Documentation

    廣義查詢應該是這樣

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

    我仍然收到錯誤: – ana

    +0

    您的SQL語法錯誤;檢查對應於您的MySQL服務器版本的手冊,以便在第1行'WHERE idCampaign = 351adc56-c906-11e2-9cfa-74867a028324'附近使用正確的語法 @ RedBaron – ana

    +0

    @ana我認爲您應該將查詢打印爲字符串,然後將它傳遞給'client.query'。它會幫助你更好地進行調試。正如克勞迪奧在他的回答中指出的,你可能錯過了引號(特別是因爲日期應該被引用) – RedBaron

    相關問題