我试图使用循环将一些数据插入到我的mysql数据库中。如您所见,我每个周期打开/插入/关闭一次连接。但是,似乎我的代码在循环后没有重新打开我的数据库连接。
源代码:
var MySQLModule = require('mysql');
//var SleepModule = require('sleep');
var MySQL_Connection = MySQLModule.createConnection({host: '10.0.0.254', user: 'User', password: 'Password', database: 'Air_Pollution_Project'});
var i = 0;
while (i < 5) {
MySQL_Connection.connect();
//SleepModule.sleep(0);
MySQL_Connection.query('INSERT INTO Air_Pollution_Reading_Record (Station_ID, Air_Pollution_Reading_Value) VALUES (2, 666)');
MySQL_Connection.end();
i++
};
结果:
events.js:183
throw er; // Unhandled 'error' event
^
Error: Cannot enqueue Handshake after invoking quit.
我是否正确打开了连接?我该怎么办。
答案 0 :(得分:0)
您无需像这样继续打开和关闭连接。我不确定它是否特别导致您的问题,但您可以尝试将其移出循环。将代码包装在try catch中可能会显示有关错误的更多信息
var i = 0;
try {
MySQL_Connection.connect();
while (i < 5) {
MySQL_Connection.query('INSERT INTO Air_Pollution_Reading_Record (Station_ID, Air_Pollution_Reading_Value) VALUES (2, 666)');
i++
};
MySQL_Connection.end();
}catch(err){
console.log(err)
}
答案 1 :(得分:0)
可能重复:Link
有用的链接:How to insert bulk data into mysql using node js
MySQL_Connection.connect();
var sql = "INSERT INTO Air_Pollution_Reading_Record (Station_ID, Air_Pollution_Reading_Value) VALUES ?";
var values = [];
var i = 0;
while (i < 5) {
var newArray = [2,666];
values.push(newArray);
i++
};
MySQL_Connection.query(sql, [values], function(err) {
if (err) throw err;
MySQL_Connection.end();
});