Javascript 我们可以使用promise mysql模块将对象作为类sql数组中的参数传递,以防止nodejs中的sql注入吗
我想向SQL查询传递一个对象 我知道这是可行的:Javascript 我们可以使用promise mysql模块将对象作为类sql数组中的参数传递,以防止nodejs中的sql注入吗,javascript,mysql,sql,node.js,Javascript,Mysql,Sql,Node.js,我想向SQL查询传递一个对象 我知道这是可行的: connection.query('SELECT * FROM projects WHERE status = ?', ['active'] ) 使用命名对象属性作为参数的正确语法是什么?大概是这样的: connection.query('SELECT * FROM projects WHERE status = :status ', { status: 'active' } ) 这种可能性不是现成的,但mysqljs(mys
connection.query('SELECT * FROM projects WHERE status = ?',
['active']
)
使用命名对象属性作为参数的正确语法是什么?大概是这样的:
connection.query('SELECT * FROM projects WHERE status = :status ',
{ status: 'active' }
)
这种可能性不是现成的,但mysqljs(mysql所依赖的promise)解释了如何通过将自定义函数分配给
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" });
我不确定API是否支持您的想法,因为第二个参数需要是一个要绑定的值数组。@TimBiegeleisen好的,谢谢您为我节省了时间!坦克斯!!