繁体   English   中英

SQL SELECT FROM具有多个变量

[英]SQL SELECT FROM with multiple variables

我想发出一个SELECT FROM请求,而不是用列名(即Alan)代替,而是用一个变量(即名为pseudo的变量)代替它,我知道它可以在php,但是我正在尝试使用Node.js在javascript中做到这一点。

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

没有错误消息,但是控制台中显示的数据为空,仅显示为空括号。

var pseudo = "Alan";
var onlinepeers = "Sarah";

var mysql = require('mysql');

let connection = mysql.createConnection({
  host: "localhost",
  user: "root",
  password: "",
  database: "espace_membre"
});

connection.connect(function(err) {
  if (err) throw err;
  connection.query("SELECT ALan FROM matches WHERE Alan = '" + onlinepeers + "'", function(err, result) {
    if (err) throw err;
    console.log(result);
  });
});

您可以使用模板文字尝试类似的方法

var pseudo = "Alan";
    var onlinepeers = "Sarah";

    var mysql = require('mysql');

    let connection = mysql.createConnection({
      host: "localhost",
      user: "root",
      password: "", 
      database: "espace_membre"
    });

    connection.connect(function(err) {
      if (err) throw err;
      connection.query(`SELECT Alan FROM matches WHERE ${pseudo}=${onlinepeers}`, function (err, result) {
        if (err) throw err;
        console.log(result);
      });
    });

更好地使用参数化查询

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

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

let queryString = "SELECT " + pseudo + " FROM matches WHERE " + pseudo + " = .....

然后:

在您的connection.query(queryString)使用变量queryString

暂无
暂无

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

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