我在我的节点项目中使用Sequelize 2.0.0,我的方言是mysql。现在,我更喜欢使用原始SQL查询而不是使用Sequelize ORM方法。
我无法找到任何关于"如何使用我的SQL查询转义查询标识符的示例或文档"在Sequelize。
在执行插入或更新操作时,我想在某些情况下转义引号。
我想要一些我在node-mysql中找到的支持 https://github.com/felixge/node-mysql#escaping-query-identifiers
你能为我提供一些简短的SQL查询(插入或更新) 我想,提供的替换文件http://sequelizejs.com/docs/latest/usage#raw-queries是不同的,我不是在寻找。或者我可能错了。我想知道替换会解决我的逃避问题吗?
由于
答案 0 :(得分:1)
mysql_real_escape_string
是一个PHP函数,你不能将它与JS库一起使用。
Sequelize是一个ORM,它抽象了SQL(并且,查看文档,我看不到用于使用它注入原始SQL的API )。在将字符串插入SQL之前,您不需要手动转义字符串,因为您不是自己编写SQL。
我found the documentation for raw queries。
您可以在文档中看到它使用参数化查询:
sequelize.query('SELECT * FROM projects WHERE status = :status ', null, {raw: true}, { status: 'active' }).success(function(projects) {
console.log(projects)
})
这些是转义SQL文本的首选方法(此also true in PHP)。
答案 1 :(得分:0)
在Sequelize中查找有关“如何使用我的SQL查询转义查询标识符”的任何文档都没有意义。因为Sequelize与Mysql identifiers.
完全无关因此,要格式化标识符,您必须将反引号和双反引号括在内部。