我正在开发nodejs / express应用。在我的路线中,我需要从MySQL数据库查询数据。对于其中包含参数的查询,它可以正常工作。 任何不带参数的查询都能按预期工作:
SELECT * FROM table WHERE col = 'b'
但是下面的一个返回undefined
SET @a = 'b'
SELECT * FROM table where col = @a
我在单独的函数中生成查询字符串(不确定是否有区别)。 任何帮助将不胜感激。
答案 0 :(得分:1)
我认为您可能正在寻找
中所述的?
占位符方法
https://www.w3schools.com/nodejs/nodejs_mysql_where.asp
var adr = 'Mountain 21';
var sql = 'SELECT * FROM customers WHERE address = ?';
con.query(sql, [adr], function (err, result) {
if (err) throw err;
console.log(result);
});
也有多个占位符,以数组形式传入:
var name = 'Amy';
var adr = 'Mountain 21';
var sql = 'SELECT * FROM customers WHERE name = ? OR address = ?';
con.query(sql, [name, adr], function (err, result) {
if (err) throw err;
console.log(result);
});