插入到失败节点-mysql

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (35)

我试图用node.js插入一些数据。我已经编写了以下代码并通过NPM安装了MySQL支持,但我失败了INSERT INTO

这是我的代码:

var mysql = require('mysql');

function BD() {
    var connection = mysql.createConnection({
        user: 'root',
        password: '',
        host: 'localhost',
        port: 3306,
        database: 'nodejs'
    });
    return connection;
}

app.post("/user/create", function(req, res) {
    var objBD = BD();

    var post = {
        username: req.body.username,
        password: req.body.password
    };

    objBD.query('INSERT INTO users VALUES ?', post, function(error) {
        if (error) {
            console.log(error.message);
        } else {
            console.log('success');    
        }
    });
});

HTML代码:

<form action="/user/create" method="POST" class="form-horizontal">
     <input type="text" id="username_input" name="username">
     <input type="text" id="password_input" name="password">
     <input type="submit" name="Submit" value="Insert" class="btn">
</form>

错误信息是:

SQL语法出现错误;请检查与MySQL服务器版本对应的手册,以获得在第1行使用的正确语法。“username”=“test”,“Password”=“test”。

我犯了什么错?

提问于
用户回答回答于

如果你注意到了,你可能已经注意到这种逃避让你可以做这样的事情: var POST={id:1,标题:‘Hello MySQL’};var query=connection.query(‘插入到POST集?’、POST、Function(ERR、Result){//IIT!});控制台日志(query.sql);//INSERT INSERT SETid=1,title=‘Hello MySQL’

注意他们用SET而不是VALUES...INSERT INTO ... SET x = y是有效的MySQL查询,而INSERT INTO ... VALUES x = y不是。

用户回答回答于

我知道这是一个旧的帖子,但我想我会分享插入到...值是一个有效的命令(没有设置),并且对批量更新非常有用:

db.query('INSERT INTO myTable (field1, field2, field3) VALUES ?', [values])

何地价值是一个数组,每个数组包含这三个字段,并作为记录插入到表中。

扫码关注云+社区