gpt4 book ai didi

javascript - 编译 SELECT 查询时检测到 KNEX 未定义绑定(bind)

转载 作者:搜寻专家 更新时间:2023-10-31 23:45:37 24 4
gpt4 key购买 nike

var knex = require('knex')(config);
var bookshelf = require('bookshelf')(knex);
var SKU = bookshelf.Model.extend({
tableName: 'skus',

});
SKU.where('id', undefined).fetch().then(function (skus) {
if (skus) console.log(skus.toJSON());
}).catch(function (err) {
console.error(err);
});

它抛出

Undefined binding(s) detected when compiling SELECT query.

它在 0.11.5 上运行良好,在 0.11.6 之后停止工作。我现在指向 0.13.0。

useNullAsDefault: true

适用于插入查询但不适用于选择查询。我应该传递任何标志来解决此错误吗?

最佳答案

.where('id', undefined) 在 SQL 中没有任何意义。你不能查询不存在的东西。

也许您想查询where id IS NULL?使用 knex 可以这样做:.whereNull('id')

对于早期的 knex 版本,它会被忽略,但从 0.12.x 开始。

因此,要与较新的版本(实际上它也与旧的 < 0.12 版本兼容)knex 版本具有相同的功能,您应该这样做:

SKU.fetch().then(function (skus) {
if (skus) console.log(skus.toJSON());
}).catch(function (err) {
console.error(err);
});

除非书架在那里添加了一些额外的魔法......

useNullAsDefault: true 选项仅在一次插入中插入多行时使用。除非您使用 sqlite(检查 http://knexjs.org/#Builder-insert 的最后一个示例),否则使用它没有意义。

关于javascript - 编译 SELECT 查询时检测到 KNEX 未定义绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45026644/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com