使用绑定参数在SQLite查询中转义查询

时间:2019-08-07 06:01:04

标签: sqlite better-sqlite3

我有一个简单的FTS5查询,例如源

function getRes(q) {
    const sel = 'SELECT Count(id) AS c FROM t JOIN v ON t.id = v.id WHERE v MATCH ?';
    return db.prepare(sel).get(q);
}

getRes('Trematoda (awaiting allocation)')的操作失败,并出现以下错误

SqliteError: fts5: syntax error near "Trematoda"

当然,它对于getRes('Trematoda')来说很好用,所以是引起问题的原因。由于我不能保证查询中将包含哪些字符,因此如何确保成功?从我的Perl + Postgres时代开始,我似乎记得,绑定自动完成了所有的转义。似乎JavaScript + SQLite并非如此。在进一步测试中,它也无法在SQLite Shell中失败,但是在Tableite(SQLite的GUI)中确实可以正常工作。

0 个答案:

没有答案
相关问题