如果是多个,则使用sequelize的绑定参数会失败

时间:2016-10-19 07:23:20

标签: postgresql sequelize.js

数据库是Postgres(在Sequelize中支持Postgres的bind参数)。

奇怪的是。

以这种方式运行原始查询和绑定参数时:

return models.sequelize.query(q, {bind: ['33', 'test']}).then(function (data) {

然后sequelize似乎在绑定参数时失败。

查询本身就像

select * from A where id = $1    

只要删除传递给bind的数组中的第二个元素,绑定就会起作用。 但是当有多个元素时,$ 1不会转换为值。这是我在日志中可以看到的。 仅存在绑定参数时的查询将打印

select * from A where id = 33

当添加多个绑定参数时的查询将打印

select * from A where id = $1

1 个答案:

答案 0 :(得分:0)

我的坏。我没有看到客户端发送的真实错误消息。 它与参数的数量无关。 问题是使用LIKE我有类似的东西:

and name LIKE '%$2%'

这给出了错误:     绑定消息提供2个参数,但是准备好的语句需要1个

这是真正的问题。