![](/img/trans.png)
[英]How to SELECT multiple records from MySQL DB in an Node.js based application & node-mysql driver?
[英]How do I insert multiple records from array in mySQL using node.js
我有一个查找表:
CREATE TABLE technologies (
technologyName VARCHAR(50) NOT NULL PRIMARY KEY
);
我想在此表中为数组中的每个元素存储一条新记录:
var values = ['Grunt', 'Gulp'];
这样生成的表将如下所示:
+----------------+
| technologyName |
+----------------+
| Grunt |
+----------------+
| Gulp |
+----------------+
我怎么能用Node做到这一点?
更新:
我知道我可以这样做:
var values = [
[
['Grunt'],
['Something']
]
]
connection.query('INSERT IGNORE INTO technologies (technologyName) VALUES ?', values);
我用原始数组尝试了这个但它不起作用。 如何将简单数组转换为更复杂的数组?
如果你想用“?” 为了逃避您的值并避免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;
});
你可以一次插入多个东西......
来自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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.