我有 rawQuery 需要逗号分隔的字符串,但根据这里的文档,第二个参数应该是一个数组:
一个动态的、不受信任的字符串数组,使用此模型数据库的适当模板语法进行 SQL 转义和注入 SQL 字符串。(如果您没有要注入的动态值,则只需在此处使用一个空数组。)
var rawQuery = 'SELECT * FROM "user" WHERE "user"."email" IN ($1)';
User.query(rawQuery, ['a@a.com', 'b@b.com'], function (err, rawResult) {
if (err) { return res.serverError(err); }
return res.ok(rawResult.rows);
});
如何在不通过数组传递变量的情况下使此查询工作?我可以像这样直接添加变量
var rawQuery = 'SELECT * FROM "user" WHERE "user"."email" IN (' + foo +')';
但它会容易受到 SQL 注入攻击。