我正在尝试使用pgp-promise库编写一个简单的查询。我的原始实现如下:
var bar = function(orderBy){
var qs = 'select * from mytable order by ${orderBy};';
return db.many(qs,{orderBy:orderBy});
}
...
bar('id').then(...)
但这会导致错误non-integer constant in ORDER BY
我还尝试添加引号${orderBy}
并在orderBy参数中添加双引号无效。通过var qs = 'select * from mytable order by "' + orderBy + '";'
我有一个可行的解决方案虽然很明显为什么我不想在项目中使用这样的代码。
我的问题:有没有办法让pg-promise使用不受sql注入攻击的order by子句构建查询?