[英]node-mysql Using array in query
我正在尝试使用数组进行查询,但出现解析错误。
a - 包含一个数组
例如:[ 7, 26, 87, 65, 86, 23, 63, 69, 44, 61, 8, 79, 47, 88, 15, 17 ]
conexao_bd.escape(a) - 转义数组
例如:7、26、87、65、86、23、63、69、44、61、8、79、47、88、15、17
它需要采用这种格式(7, 26, 87, 65, 86, 23, 63, 69, 44, 61, 8, 79, 47, 88, 15, 17),所以我可以在查询中使用它。 任何帮助如何更改格式?
代码
conexao_bd.query("SELECT question, answer FROM ", conexao_bd.escape(tipo) + " WHERE id IN " + conexao_bd.escape(a) ,function(err, rows){
if(err) console.log("Erro na query questions: "+err);
else{
perguntas.questions.push(rows);
console.log(JSON.stringify(perguntas));
}
});
查看 Array.join() 以将其作为字符串返回。 这是一个基本的 javascript 问题,与节点无关。
我实际上找到了正确的答案,包括转义(以防止 SQL 注入):
嵌套数组变成分组列表(用于批量插入),例如 [['a', 'b'], ['c', 'd']] 变成 ('a', 'b'), ('c ', 'd')
所以正确的方法是:
conexao_bd.query("SELECT question, answer FROM ? WHERE id IN ?",[tipo,[a]],function(err, rows){
if(err)
console.log("Erro na query questions: "+err);
else{
perguntas.questions.push(rows);
console.log(JSON.stringify(perguntas));
}
});
查询有错误
conexao_bd.query("SELECT question, answer FROM ",
应该是
conexao_bd.query("SELECT question, answer FROM "+
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.