数据库是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
答案 0 :(得分:0)
我的坏。我没有看到客户端发送的真实错误消息。 它与参数的数量无关。 问题是使用LIKE我有类似的东西:
and name LIKE '%$2%'
这给出了错误: 绑定消息提供2个参数,但是准备好的语句需要1个
这是真正的问题。