node-mysql在查询中使用数组

我试图做一个查询使用数组,但有一个parsing错误。

一个 – 包含一个数组

例如:[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)); } }); 

       

网上收集的解决方案 "node-mysql在查询中使用数组"

查看Array.join()以stringforms返回。 这是一个基本的javascript问题,不是节点相关的。

查询时出错

 conexao_bd.query("SELECT question, answer FROM ", 

应该

 conexao_bd.query("SELECT question, answer FROM "+ 

我实际上find了正确的答案,包括转义(防止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)); } });