无法使用节点js中的util.format()解析mysql预编译语句中的整数

时间:2017-12-31 10:15:47

标签: javascript mysql node.js

我在node.js中使用util模块来格式化字符串。但是当我想运行像SQL一样的SQL查询时,我发现了一个问题。

select * from something LIMIT 5 OFFSET 0;

所以我要做的是,我创建了一个queryString,然后格式化queryString,最后通过服务器应用程序执行查询。这是nodejs中的代码:

queryString = "select * from something LIMIT '%d' OFFSET '%d'";
query = util.format(queryString, 5, 0);
res = db.executeQuery(query);

我也尝试了%i和%s,带引号但没有引号,但对我没什么用。 这是日志:

Error: ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '%i OFFSET %i' at line 1

我确信我在这里遗漏了一些东西。提前致谢

1 个答案:

答案 0 :(得分:0)

假设您使用的是mysql模块

还有其他方法:

var limit = 5;
var offset = 0;
var qs = `select * from something LIMIT ${limit} OFFSET ${offset}`;

connection.query('select * from something LIMIT ? OFFSET ?', [limit, offset], function (error, results, fields) {
  ...
});

var sql = mysql.format('select * from something LIMIT ? OFFSET ?', [limit, offset]);

See docs