繁体   English   中英

Node-mysql插入带有两个值的查询?

[英]Node-mysql insert query with two values?

这是我目前的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) {

});

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

占位符(?character)将转义你的querydata以避免sql-injection。 因为您不使用组合字符串进行查询。 对每个插入的值使用占位符。 喜欢

("INSERT INTO Codify (UsernameDB , PasswordDB) VALUES (?,?)", [data.RegUsername,data.Regpassword] , function () )

在这里检查nodejs mysql驱动文件

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM