2014-03-25 209 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'