Javascript 正在插入转义字符的SQL查询

Javascript 正在插入转义字符的SQL查询,javascript,mysql,Javascript,Mysql,我有一个正在输入MySQL的查询。我添加了一个新组件。。像这样的。 它适用于单个项目,但当我传入倍数时。。。它对单引号进行了一些奇怪的转义。 下面是传入的sql的样子(从下面的console.log): 以下是我如何构建VAL: sql += " and vals in (?)"; var newStr = filterText.myItems.split(",".join("','"); sqlParams.push(newStr); filterText.myItems由用户以逗号分隔的值

我有一个正在输入MySQL的查询。我添加了一个新组件。。像这样的
。
它适用于单个项目,但当我传入倍数时。。。它对单引号进行了一些奇怪的转义。
下面是传入的sql的样子(从下面的console.log):

以下是我如何构建
VAL

sql += " and vals in (?)";
var newStr = filterText.myItems.split(",".join("','");
sqlParams.push(newStr);
filterText.myItems
由用户以逗号分隔的值输入。例如:“
2.2.3,2.4.5

进入MySQL的查询如下所示:

exports.query = function(sql, params, resultHandler, errorHandler) {
  function _handleError(err) {
     errorHandler(config.mysql.errorMessage || err); 
  }
  pool.getConnection(function(err, conn) {
    if(err) {
      _handleError(err);
      return;
    }
    var query22 = conn.query(sql, params, function(err,results) {
       if(err) {
          _handleError(err);
       } else {
          resultHandler(results);
       }

       conn.release();
    });
    //this prints out the sql and values displayed above.
    console.log("FINAL QUERY:"+util.inspect(query22));
  }
}
 sql = "select name, street, numbers from ?? where year=?",
 sqlParams = [this.tableName, this.year]
不用说。。。这无法执行,因为我猜MySQL不知道
\\\'
实际上是什么。 无论出于何种原因,查询都会添加前导和尾随单引号。这就是为什么我在数字之间添加了
,'

有人知道这可能是什么原因,或者我如何在它执行之前删除它吗


谢谢

我又胡闹了一会儿,终于让它开始工作了。以下是方法。
sql已生成,并按如下方式传入参数:

exports.query = function(sql, params, resultHandler, errorHandler) {
  function _handleError(err) {
     errorHandler(config.mysql.errorMessage || err); 
  }
  pool.getConnection(function(err, conn) {
    if(err) {
      _handleError(err);
      return;
    }
    var query22 = conn.query(sql, params, function(err,results) {
       if(err) {
          _handleError(err);
       } else {
          resultHandler(results);
       }

       conn.release();
    });
    //this prints out the sql and values displayed above.
    console.log("FINAL QUERY:"+util.inspect(query22));
  }
}
 sql = "select name, street, numbers from ?? where year=?",
 sqlParams = [this.tableName, this.year]
我使用
子句中的
动态添加到我的sql中。然而,当我将其作为主sql的一部分并在那里传递VAL时,它起了作用

 sql = "select name, street, numbers from ?? where year=? and vals in (?)",
 sqlParams = [this.tableName, this.year,  filterText.myItems.split(',')]
sql现在看起来是这样的,并且工作得很好:

sql: 'select name, street, numbers from' +
 "`HOMES` where " +
 "year='2020' and vals in ('2.2.3','2.4.5')",
values: [ '2020', ['2.2.3','2.4.5'] ]

“来自家中”+
这里缺少一个+。它应该是来自“+HOMES+”的“++
@MarceloTheWizzardCoder”,我打错了。看起来那一行和下面的一行都有双引号。。。其中另一行有单引号。不太清楚为什么。