1

我在我的节点项目中使用 Sequelize 2.0.0,我的方言是 mysql。现在,我更喜欢使用原始 SQL 查询而不是使用 Sequelize ORM 方法。

我在 Sequelize 中找不到任何关于“如何在我的 SQL 查询中使用转义查询标识符”的示例或文档。

在某些情况下,我想在执行插入或更新操作时转义引号。

我想要一些支持,就像我在 node-mysql https://github.com/felixge/node-mysql#escaping-query-identifiers中找到的那样

你能给我提供一些简短的 SQL 查询(插入或更新)吗?我猜,http ://sequelizejs.com/docs/latest/usage#raw-queries 提供的替换文档是我不想要的不同的东西。或者我可能是错的。我想知道更换会解决我的逃生问题吗?

谢谢

4

2 回答 2

1

mysql_real_escape_string是一个 PHP 函数,不能与 JS 库一起使用。

Sequelize 是一个 ORM,它将 SQL 抽象出来(并且,查看文档,我看不到使用它来注入原始 SQL 的 API)。您不需要在将字符串插入 SQL 之前手动转义字符串,因为您自己不是在编写 SQL。


找到了原始查询的文档

您可以在文档中看到它使用参数化查询:

sequelize.query('SELECT * FROM projects WHERE status = :status ', null, {raw: true}, { status: 'active' }).success(function(projects) {
  console.log(projects)
})

这些是为 SQL 转义文本的首选方法(在 PHP 中也是如此)。

于 2013-12-17T11:59:11.990 回答
0

在 Sequelize 中查找有关“如何在我的 SQL 查询中使用转义查询标识符”的任何文档是没有意义的。因为 Sequelize 与Mysql 标识符完全无关。

所以,要格式化一个标识符,你必须用反引号和双反引号括起来。

于 2013-12-17T14:54:30.407 回答