mysql 模块如何实现批量Insert保存?
如题,下边是我写的模块代码实现,求大神帮忙看看,谢谢! 测试数据是
fields = "f1,f2,f3";
values = [[1,2,3],[4,5,6]];
var mysql = require('mysql');
var DbUtil = function(dbConfig){
this.dbConfig = dbConfig;
}
DbUtil.prototype.batchSave = function(tableName, fields, values, callback){
var sql = "INSERT INTO " + tableName + "(" + fields + ") VALUES (?) ";
var conn = null;
try{
conn = this.createConnection();
//sql = mysql.format(sql, values);
console.log(sql);
var query = conn.query(sql, values, function(err, results){
if(err){
//console.log(data);
console.log(sql);
}
callback(err, results);
conn.end();
});
}catch(err){
if(conn){
conn.end();
}
//console.log(sql);
//console.log(err);
}
}
exports.getInstance = function(dbConfig){
return new DbUtil(dbConfig);
}
4 回复
找到原因了
var query = conn.query(sql, values, function(err, results){
if(err){
//console.log(data);
console.log(sql);
}
callback(err, results);
conn.end();
});
应该改为
var query = conn.query(sql, [values], function(err, results){
if(err){
//console.log(data);
console.log(sql);
}
callback(err, results);
conn.end();
});
测试通过!
你这个能同时插入2行记录?mysql模块版本多少? 我测试了下 只能把[1,2,3]这条记录插入吧。
@imhered mysql 5.7的 我试了可以啊
@zhb0810 哦,我用的5.6。原来如此。