使用先前的例子?我怎样才能使用插入/更新
mysql表
没有手动命名表列标题的 JSON对象?并确保它是异步的.
没有手动命名表列标题的 JSON对象?并确保它是异步的.
var MysqL = require('node-MysqL'); var conn = MysqL.createConnection({ ... }); var values = [ {name:'demian',email: 'demian@gmail.com',ID: 1},{name:'john',email: 'john@gmail.com',ID: 2},{name:'mark',email: 'mark@gmail.com',ID: 3},{name:'pete ',email: 'pete@gmail.com',ID: 4} ]; // var sql = "INSERT INTO Test (name,email,n) VALUES ?"; conn.query(sql,[values],function(err) { if (err) throw err; conn.end(); })
解决方法
你可以这样做:
for(var i = 0; i < values.length; i++){ var post = values[i] var query = connection.query('INSERT INTO posts SET ?',post,function(err,result) { // Finish }); }
编辑
这是您一次插入多个“帖子”的方式.
INSERT INTO posts (type,details) VALUES ('Helen',24),('Katrina',21),
您必须遍历第一个值才能获得这样的名称.
var names = []; for(name in values[0]){ names.push(name); // That would give you name,id }
然后你必须创建自己的字符串来插入.
var newvalues = []; for(var i = 0; i < values.length; i++){ newvalues.push('(' + values[i].join(',') + ')'); }
connection.query('INSERT INTO posts (' + names.join(',') + ') VALUES ' + newvalues.join(','),rows,fields) { // Result });
你必须自己测试代码,这就是你要做的.