【发布时间】:2013-04-14 14:28:56
【问题描述】:
如果我的数据库没有数据,我想做的就是插入一些数据,所以我将插入 SQL 放入我的 Select SQL 的回调函数中,但出现如下错误:
{ [错误:调用退出后无法将查询排入队列。] 代码:'PROTOCOL_ENQUEUE_AFTER_QUIT',致命:false }
我的代码 sn-p 在这里:
db.query('SELECT count(*) as Resultcount FROM tablename WHERE email = ? and password = ?', [post.email, post.password], function(error, result){
if (result[0].Resultcount == 0){
var query2 = db.query('INSERT INTO tablename SET ?', [post], function(err, result) {
if(err){
console.log(err);
}
console.log(result);
});
}
else{
console.log('have data already');
}
});
有人可以给我一些建议吗? 谢谢
----更新----
其实select SQL的回调函数并不是匿名函数,我的关于db.end()的代码sn-p是这样的:
var QueryResults = new queryResultFuntion(Back_results);
db.query('SELECT count(*) as Resultcount FROM tablename WHERE email = ? and password = ?', [post.email, post.password], QueryResults.queryResult );
db.end();
【问题讨论】:
-
你是否在这段代码之后关闭了你的数据库连接?
-
是的,当我完成 db.query('select ...') 时,我调用了 db.end();
-
这意味着当您的 INSERT 查询运行时,连接将被关闭。请将该代码添加到您的问题中,我会回答。
-
另外,你什么时候创建连接?
-
我的连接是在调用导出函数时创建的
标签: javascript mysql node.js node-mysql