【发布时间】:2016-08-08 05:22:28
【问题描述】:
这是我的代码:
var set = {
FIRST_NAME: professor.value_20,
SURNAME: professor.value_21
}
//logs
//console.log(set);
//executes query
connection.query({
sql: 'SELECT TEACHERID FROM TEACHER WHERE FIRST_NAME = ? AND SURNAME = ?',
//'INSERT INTO TEACHER set ? ON DUPLICATE KEY UPDATE FIRST_NAME = ?, SURNAME = ?',
values: [set.FIRST_NAME,set.SURNAME]
}, (err, results, fields) => {
if (err) throw err;
if(results.length < 0) {
connection.query({
sql: 'INSERT INTO TEACHER set ?',
values: [set]
}, (err, results, fields) => {
if (err) throw err;
});
}
else {
connection.query({
sql: 'UPDATE TEACHER (FIRST_NAME, SURNAME) VALUES(?,?)',
values: [set.FIRST_NAME, set.SURNAME]
}, (err, results, fields) => {
if (err) throw err;
connection.end();
});
}
});
当我运行此代码时,我收到以下错误:
Error: Cannot enqueue Query after invoking quit.
问题似乎出现在第三个查询的级别,虽然我之前没有关闭连接。我该如何解决这个问题?
另一个问题:在这种情况下使用池而不是直接连接更好吗?
谢谢!
【问题讨论】:
标签: mysql node.js npm node-mysql