我想做ORDER BY
Node.js 中的 mysql 查询是动态的。但这不起作用。我console.log
multiQuery 变量和一切看起来都很完美,但运行时它根本不起作用。这就是我所拥有的:
var order,
multiQuery;
if(req.query.o){
order = req.query.o;
}else{
order = "views";
}
multiQuery = 'SELECT COUNT(Category) AS Count FROM posts;';
//PROBLEM LIES HERE IN THE SECOND ONE
multiQuery += 'SELECT ID, Title, Img_path, Category, Views FROM posts WHERE Category = ' + connection.escape(category) + ' ORDER BY' + connection.escape(order) + 'DESC LIMIT ' + start_from + ', 15;';
connection.query(multiQuery, function(err, result){
});
这不起作用:
SELECT foo FROM bar ORDER BY 'baz';
这确实有效:
SELECT foo FROM bar ORDER BY baz;
您是否尝试删除引号connection.escape
adds?
尝试使用这个:
function escapeSansQuotes(connection, criterion) {
return connection.escape(criterion).match(/^'(\w+)'$/)[1];
}
然后使用escapeSansQuotes(connection, order)
代替connection.escape(order)
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)