【问题标题】:Node.js MySQL insert issue [duplicate]Node.js MySQL插入问题[重复]
【发布时间】:2014-05-04 03:03:30
【问题描述】:

考虑:

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.");
            }
        });
    }
}

这似乎不起作用。有什么明显的问题吗?语法是否正确?当我按下表单上的提交按钮时,它只是挂起,并且永远不会发生插入。我已经确认表单获得了正确的值。数据库表中的字段是用户名、名字和姓氏。

【问题讨论】:

  • 您是否尝试过使用console.log 来查看效果如何?它甚至到达查询吗?
  • 只有在出错时才会发送响应 - 添加 else 以发送成功响应
  • 是的,它正在到达查询。 @KeepCalmAndCarryOn 如果有效,它不会吐出错误响应! :P
  • @TidusSmith 这改变了一切。您是否尝试输出实际错误而不是一般消息?

标签: mysql node.js express


【解决方案1】:

您误读了手册!如果您使用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'

【讨论】:

  • // get form values var post = { username : req.body.username, firstname : req.body.firstname, lastname : req.body.lastname };
猜你喜欢
  • 2023-04-01
  • 2020-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-22
  • 1970-01-01
  • 2023-03-19
  • 1970-01-01
相关资源
最近更新 更多