nodejs mysql插入问题

atk*_*yla 2 mysql node.js express

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.");
            }
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

这似乎不起作用.有没有人看到任何明显的问题?语法是否正确?当我按下表单上的提交按钮时,它只是挂起,插入永远不会发生.我已经确认表单获得了正确的值.数据库表中的字段是username,firstname和lastname.

Tim*_*lla 12

你误读了手册!如果您正在使用对象,则INSERT INTO需要使用SET:

INSERT INTO myDatabase SET ?
Run Code Online (Sandbox Code Playgroud)

引用:

如果你注意了,你可能已经注意到这个逃脱可以让你做这样的整洁的事情:

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'
Run Code Online (Sandbox Code Playgroud)