如何使用node.js在mySQL中插入多个logging

我有一个查找表:

CREATE TABLE technologies ( technologyName VARCHAR(50) NOT NULL PRIMARY KEY ); 

我想为这个数组中的每个元素存储一个新的logging:

 var values = ['Grunt', 'Gulp']; 

所以,结果表如下所示:

 +----------------+ | technologyName | +----------------+ | Grunt | +----------------+ | Gulp | +----------------+ 

我怎样才能做到这一点使用节点?

更新:

我知道我可以做这样的事情:

 var values = [ [ ['Grunt'], ['Something'] ] ] connection.query('INSERT IGNORE INTO technologies (technologyName) VALUES ?', values); 

我试过这与原始数组,但它不起作用。 我怎样才能将简单的数组转换成更复杂的数组?

你可以一次插入多个东西…

从mysql文档( https://dev.mysql.com/doc/refman/5.5/en/insert.html

 INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9); 

所以给你:

 insert into technologies (technologyname) values ('grunt'),('gulp') 

 var sql = "insert into technologies (technologyname) values "; for(var v in values) sql += "('" + connection.escape(values[v]) + "'),"; sql = sql.substr(0,sql.length-1); // take off the last comma since we added one after each value 

如果你想使用“?” 为了逃避你的值并避免SQL注入,mysqljs接受嵌套数组进行批量插入。 所以你的更新的答案是:

 var valuesNestedArray = []; for(var v in values ) { valuesNestedArray.push([values[v]]); } var sql = "INSERT IGNORE INTO technologies (technologyname) values ?"; connection.query(sql, [valuesNestedArray], function(err) { if (err) throw err; });