我想将对象传递到SQL查询。
我知道这有效:
connection.query('SELECT * FROM projects WHERE status = ?',
['active']
)
使用命名对象属性作为参数的正确语法是什么?这样的东西:
connection.query('SELECT * FROM projects WHERE status = :status ',
{ status: 'active' }
)
这种可能性不可用,但是MySQLJS的文档(Promise-Mysql依靠)解释了如何通过将自定义功能分配给connection.config.queryFormat
来实现。:
如果您希望有其他类型的查询逃生格式,则有一个 连接配置选项您可以用来定义自定义格式 功能。如果要使用 内置的.escape()或任何其他连接功能。
这是如何实现另一种格式的示例:
connection.config.queryFormat = function (query, values) { if (!values) return query; return query.replace(/:(w+)/g, function (txt, key) { if (values.hasOwnProperty(key)) { return this.escape(values[key]); } return txt; }.bind(this)); }; connection.query("UPDATE posts SET title = :title", { title: "Hello MySQL" });