Javascript 具有多个变量的SQL选择

Javascript 具有多个变量的SQL选择,javascript,mysql,sql,node.js,Javascript,Mysql,Sql,Node.js,我想做一个SELECT-FROM请求,而不是列的名称(Alan),我想用一个变量(名为pseudo的变量)替换它,我知道它可以在php中完成,但我正在尝试使用Node.js在javascript中完成 我试图替换列的名称,但控制台中的结果是错误的 没有错误消息,但是控制台中显示的数据是空的,它只显示一个空括号 var pseudo=“Alan”; var onlinepeers=“Sarah”; var mysql=require('mysql'); let connection=mysql.c

我想做一个SELECT-FROM请求,而不是列的名称(Alan),我想用一个变量(名为pseudo的变量)替换它,我知道它可以在php中完成,但我正在尝试使用Node.js在javascript中完成

我试图替换列的名称,但控制台中的结果是错误的

没有错误消息,但是控制台中显示的数据是空的,它只显示一个空括号

var pseudo=“Alan”;
var onlinepeers=“Sarah”;
var mysql=require('mysql');
let connection=mysql.createConnection({
主机:“本地主机”,
用户:“根”,
密码:“”,
数据库:“espace_membre”
});
connection.connect(函数(err){
如果(错误)抛出错误;
query(“从匹配项中选择ALan,其中ALan=”+onlinepeers+”,函数(err,result){
如果(错误)抛出错误;
控制台日志(结果);
});
});

您可以使用

更好地使用参数化查询


首先创建一个queryString,如下所示:

let queryString = "SELECT " + pseudo + " FROM matches WHERE " + pseudo + " = .....
然后:


连接中使用变量
queryString
。查询(queryString)

学习使用参数。不要在查询字符串中使用参数值。这种问题是架构设计不佳的症状。嗨,谢谢你的回答,我尝试使用第一个示例,但控制台返回单词“undefined”,没有进一步解释。对于第二个示例代码,控制台返回我“reference error:query not defined”(参考错误:查询未定义),因此我正在研究解决来自控制台的最后一条消息。您的列在查询中有
L
而不是
L
,请检查,我已更新了我的答案,它将是
sql
而不是
query
,更新了我的答案请检查谢谢你的答案,我使用了你的方法,但控制台中显示的结果是错误的,它显示了两次列的名称,而不是其中的列名称和数据(onlinepeer)。+SQL注入漏洞非常糟糕的形式,因为这极易受到SQL注入的攻击。查询正在服务器上构建,javascript代码正在服务器上运行。没有用户输入,因此不易受到SQL注入的攻击。
    let sql=`SELECT Alan FROM matches WHERE ${pseudo} =?`

    connection.connect(function(err) {
          if (err) throw err;
          connection.query(sql,[onlinepeers], function (err, result) {
            if (err) throw err;
            console.log(result);
          });
        });
let queryString = "SELECT " + pseudo + " FROM matches WHERE " + pseudo + " = .....