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。原来如此。
 
    