2014-03-25 206 views
0
exports.adduser = function(connection) { 
    return function(req, res) { 

     // get form values 
     var username = req.body.username; 
     var firstname = req.body.firstname; 
     var lastname = req.body.lastname; 

     var post = { 
      username : username, 
      firstname : firstname, 
      lastname : lastname 
     }; 

     connection.query('INSERT INTO myDatabase VALUES ?', post, function(err, result) { 
      if (err) { 
       res.send("There was a problem adding the information to the database."); 
      } 
     }); 
    } 
} 

這似乎不起作用。有沒有人看到任何明顯的問題?語法是否正確?當我按下我的表單上的提交按鈕時,它只是掛起,並且插入從不發生。我已經確認表格可以獲得正確的值。數據庫表中的字段是用戶名,名字和姓氏。nodejs mysql插入問題

+0

您是否嘗試使用'console.log'來查看它有多遠?它甚至會達到查詢嗎? – TimWolla

+1

當您發生錯誤時,您只會發送回覆 - 添加其他字符以發送成功回覆 – KeepCalmAndCarryOn

+0

是的,它正在到達查詢。 @KeepCalmAndCarryOn它不會吐出錯誤響應,如果它的工作! :P – kayla

回答

6

您誤讀了手冊!如果您使用的是對象INSERT INTO你需要使用SET

INSERT INTO myDatabase SET ? 

Quoting:

如果你注意,你可能已經注意到,這個轉義允許你做巧妙的事情是這樣的:

var post = {id: 1, title: 'Hello MySQL'}; 
var query = connection.query('INSERT INTO posts SET ?', post, function(err, result) { 
    // Neat! 
}); 
console.log(query.sql); // INSERT INTO posts SET `id` = 1, `title` = 'Hello MySQL'