支持转义查询标识符

时间:2013-12-17 11:55:53

标签: mysql escaping sequelize.js tablename

我在我的节点项目中使用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是不同的,我不是在寻找。或者我可能错了。我想知道替换会解决我的逃避问题吗?

由于

2 个答案:

答案 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.

完全无关

因此,要格式化标识符,您必须将反引号和双反引号括在内部。