我正在尝试使用Knex将查询保存到数据库。但是,如果我要保存的查询包含引号,则会出现错误。

这是代码示例的示例:

db.query(`INSERT INTO test.searches VALUES ('TestUser', 'testqueryname', ''SELECT * FROM table WHERE team='rocket'')`, info, () =>{}


当然,在实际情况下,我不是发送硬编码的值,而是将变量作为字符串发送。

尝试保存此错误


  错误:“火箭”处或附近的语法错误

最佳答案

首先,看起来您的代码具有javascript语法错误,至少缺少右括号。

其次,knex没有.query()方法(也许您正在直接使用数据库驱动程序?)。即使上面的查询可以使用常规的knex.raw()方法轻松编写,您也应该使用knex

如果使用的是knex.raw,则可以使用??替换和值绑定(例如?)进行引用。

如果像问题中那样编写代码,则使用knex根本没有优势,而应该直接使用数据库驱动程序。

关于javascript - Knex和SQL数据库的引号问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53203444/

10-12 16:24