我正在尝试使用数组进行查询但是有一个解析错误。
a - 包含数组
Ex:[7,26,87,65,86,23,63,69,44,61,8,79,47,88,15,17]
conexao_bd.escape(a) - 转义数组
Ex: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));
}
});
答案 0 :(得分:2)
查看Array.join()以将其作为字符串返回。这是一个基本的javascript问题,与节点无关。
答案 1 :(得分:1)
查询
时出错conexao_bd.query("SELECT question, answer FROM ",
应该是
conexao_bd.query("SELECT question, answer FROM "+
答案 2 :(得分:1)
我实际上找到了正确的答案,包括转义(防止SQL注入):
嵌套数组转换为分组列表(对于批量插入),例如[[' a',' b'],[' c'' d']]变成了(' a&# 39;,' 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));
}
});