gpt4 book ai didi

node.js - 在node-sqlite3中绑定(bind)blob参数

转载 作者:太空宇宙 更新时间:2023-11-03 22:08:32 25 4
gpt4 key购买 nike

我有一个带有 BLOB 主键 (id) 的 SQLite3 表:

CREATE TABLE item (
id BLOB PRIMARY KEY,
title VARCHAR(100)
);

在 JavaScript 模型中,主键 (id) 表示为 JavaScript 字符串(每个字符一个十六进制字节):

var item = { 
id: "2202D1B511604790922E5A090C81E169",
title: "foo"
}

当我运行下面的查询时,id 参数被绑定(bind)为字符串。但我需要将它绑定(bind)为 BLOB。

db.run('INSERT INTO item (id, title) VALUES ($id, $title)', {
$id: item.id,
$title: item.title
});

为了说明这一点,上面的代码生成以下 SQL:

INSERT INTO item (id, title) VALUES ("2202D1B511604790922E5A090C81E169", "foo");

我需要的是这个:

INSERT INTO item (id, title) VALUES (X'2202D1B511604790922E5A090C81E169', "foo");

最佳答案

显然,字符串需要转换为缓冲区:

db.run('INSERT INTO item (id, title) VALUES ($id, $title)', {
$id: Buffer.from(item.id, 'hex'),
$title: item.title
});

关于node.js - 在node-sqlite3中绑定(bind)blob参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49111508/

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