这是我目前的 javascript。

var connection = mysql.createConnection({
   host: 'localhost',
   user: 'root',
   password: 'root',
   database: 'codify',
   port:     '8889'
})


connection.connect();
 //var querydata = +"'"+data.RegUsername + "','"+data.RegPassword+"'"
  connection.query("INSERT INTO Codify (UsernameDB , PasswordDB) VALUES ?", data.RegUsername,+","+ data.Regpassword , function(err,rows,fields){
   if (err) throw err;
    })
  });*/

此查询导致错误,我做错了什么?

最佳答案

你做错了什么是你试图将你的两个值连接成一个字符串,并将该字符串替换为你的单个 ? 。如果您使用单个 ? ,则需要传入一个对象,该对象的参数与数据库字段名称相同。

我会这样做:

let payload = {
    UsernameDB: data.RegUsername,
    PasswordDB: data.Regpassword
};

connection.query("INSERT INTO Codify SET ?", payload, function(err, rows) {

});

您也可以使用数组而不是对象来执行此操作:
let sql = "INSERT INTO Codify (UsernameDB, PasswordDB) VALUES (?, ?)";
connection.query(sql, [ data.RegUsername, data.Regpassword ], function(err, rows) {

});

或者像这样:
let sql = "INSERT INTO Codify SET UsernameDB = ?, PasswordDB = ?";
connection.query(sql, [ data.RegUsername, data.Regpassword ],  function(err, rows) {

});

但我发现将单个 ? 与对象一起使用更具可读性。

关于javascript - Node-mysql 插入查询有两个值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40350747/

10-10 13:46