【发布时间】:2017-10-29 11:34:01
【问题描述】:
我正在尝试使用 node.js pg npm 包创建一个 PostgreSQL 准备好的语句。但是,我不断收到错误消息:
无法确定参数 $1 的数据类型
function promiseQuery(sql, values) {
return new Promise(function(resolve, reject) {
pool.query('select $1 from workers', ['name'], function(err, result) {
if (err) {console.log(err); reject(err)}
else resolve(result.rows);
})
});
}
在 db 中,name 字段设置为类型 text not null。
我也尝试pg-promise,但也没有成功。
【问题讨论】:
-
你确定你可以这样传递标识符吗?..
-
@VaoTsun 在 pg 文档中有一个非常相似的例子:npmjs.com/package/pg
-
确切地说,文档指定了语法:
pool.query('SELECT $1::int AS number', ['2'], function(err, res),您没有在代码中使用 -
在该示例中,brianc 是一个文本值,而不是列名 - 是您的情况吗?..
-
如果你能像那样做动态 SQL,它就不能防止 SQL 注入。
标签: javascript node.js postgresql pg pg-promise