带有“SET@'XXX”的nodejs express mysql查询

带有“SET@'XXX”的nodejs express mysql查询,mysql,node.js,express,parameters,routes,Mysql,Node.js,Express,Parameters,Routes,我正在开发nodejs/express应用程序。在我的路由中,我需要从MySQL数据库查询数据。对于包含参数的查询,它可以很好地处理异常。 任何不带参数的查询都会按预期工作: SELECT * FROM table WHERE col = 'b' 但是下面的返回未定义 我在单独的函数中为查询生成字符串,不确定这是否有任何区别。 任何帮助都将不胜感激。我想您可能正在寻找?占位符方法,如中所述 还有多个占位符,作为数组传入: var name = 'Amy'; var adr = 'Mountai

我正在开发nodejs/express应用程序。在我的路由中,我需要从MySQL数据库查询数据。对于包含参数的查询,它可以很好地处理异常。 任何不带参数的查询都会按预期工作:

SELECT * FROM table WHERE col = 'b'
但是下面的返回未定义

我在单独的函数中为查询生成字符串,不确定这是否有任何区别。
任何帮助都将不胜感激。

我想您可能正在寻找?占位符方法,如中所述

还有多个占位符,作为数组传入:

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

如果您发布了用于与db(而不仅仅是sql)对话的代码,这会有所帮助statement@twoleggedhorse. 我使用的是标准const db=require'../server';db.queryquery,result。那很好。我的问题是只有参数的查询。谢谢。它将对我的一些查询起作用,只需稍加修改,这非常好。但是,其中一些具有动态语句,即从@query准备动态_语句;执行dynamic_语句任何关于如何处理这些问题的想法。它必须是完全动态的吗?这通常被描述为一种代码气味,你能举个例子吗?下面是一个动态构建语句的例子,它可能适合你的需要,不确定代码气味是什么,但听起来不太令人鼓舞。在当前表结构下,它必须是动态的。下面是我用@let替换的一些代码:让strMjrRank='SET userid='+userid+';设置cip1:=选择…。来自xxx,其中xxx.ut_userid=userid;设置cip1m:=左CIP1,6;设置w1:=CASTRIGHTcip1,长度CIP1-INSTRcip1,签名为“u1”;集合查询:=CONCAT'SELECT…,cip1m,'*',w1,'+…。。从查询中准备动态_语句;执行动态_语句;cip1m是表中的列名。也许sql函数更好?只需传入用户id就可以了,然后一切都在sql中,您可以在那里做更复杂的事情。或者,执行多个数据库调用;一个是获取cip1,在代码中进行字符串操作以获取其他值。现在,您已经拥有了最后一次db调用所需的所有内容。。
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);
});