我正在尝试使用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/