无法使用 Node.js 批量插入 mysql
Can't bulk insert into mysql using Node.js
我正在使用 Node.js 编写服务器应用程序,但在使用 mysql library 时遇到问题。
当我尝试向我的数据库中批量插入时出现问题这是我正在使用的示例代码。
const sql = require("mysql")
//Connection settings
const sqlConfig = require("../settings");
function executeSql(queryData, callback){
let connection = sql.createConnection(sqlConfig.dbConfig);
connection.connect(function(err){
if(err){
console.error('connection error: ' + err.stack);
callback(null, err);
return;
}
connection.query(queryData, function(error, results, fields){
if(error){
console.error('error: '+error.stack);
callback(null, error);
return;
}
callback(results, null);
});
});
};
let sqlquery = "INSERT INTO table(val1, val2) VALUES (?)";
let val1 = [1,2,3,4];
let val2 = 1;
let values = [];
for(let i = 0; i<val1.length, i++)
values.push([val1[i], val2]);
let queryData = {
sql: sqlquery,
values: values
}
executeSql(queryData, function(data, err) {
if (err) {
console.error(err);
} else {
console.log("success");
}
});
问题是程序打印出来了 "success" 但是在我的数据库中只有一行数据而不是 4 行,我不知道这有什么问题。
好的,问题是它需要一个由数组组成的数组,而查询很糟糕。
这是正确的查询
let sqlquery = "INSERT INTO table(val1, val2) VALUES ?";
并且在创建 queryData 对象时:
let queryData = {
sql: sqlquery,
values: [values]
}
我正在使用 Node.js 编写服务器应用程序,但在使用 mysql library 时遇到问题。
当我尝试向我的数据库中批量插入时出现问题这是我正在使用的示例代码。
const sql = require("mysql")
//Connection settings
const sqlConfig = require("../settings");
function executeSql(queryData, callback){
let connection = sql.createConnection(sqlConfig.dbConfig);
connection.connect(function(err){
if(err){
console.error('connection error: ' + err.stack);
callback(null, err);
return;
}
connection.query(queryData, function(error, results, fields){
if(error){
console.error('error: '+error.stack);
callback(null, error);
return;
}
callback(results, null);
});
});
};
let sqlquery = "INSERT INTO table(val1, val2) VALUES (?)";
let val1 = [1,2,3,4];
let val2 = 1;
let values = [];
for(let i = 0; i<val1.length, i++)
values.push([val1[i], val2]);
let queryData = {
sql: sqlquery,
values: values
}
executeSql(queryData, function(data, err) {
if (err) {
console.error(err);
} else {
console.log("success");
}
});
问题是程序打印出来了 "success" 但是在我的数据库中只有一行数据而不是 4 行,我不知道这有什么问题。
好的,问题是它需要一个由数组组成的数组,而查询很糟糕。
这是正确的查询
let sqlquery = "INSERT INTO table(val1, val2) VALUES ?";
并且在创建 queryData 对象时:
let queryData = {
sql: sqlquery,
values: [values]
}