我试图运行一个简单的Postgres SQL插件:
insert into "Resources" values(1, 'How are you?');
但是插入后的结果是:
ID Data
--- ------
1 How are you$1
我知道,要插入像单引号这样的字符,我必须使用另一个单引号来逃避它:我无法做到。
但该怎么办?
答案 0 :(得分:4)
Knex将?
和??
解释为位置绑定。您通常会在knex.raw()
语句中使用它们来安全地注入某种变量。例如:
knex.raw('UPDATE my_table SET my_column = ?', [someVariable])
对于这样的绑定参数,通常需要使用原始语句来确保您注入的内容安全地被转义。
这就是为什么你看到了这种行为。好消息是,你可以逃避问号。来自Knex.js documentation:
防止更换?可以使用转义序列\\?。