Tüm yapmak istediğim, veritabanımın sahip olmaması durumunda bazı veriler eklemek, bu yüzden SQL'i Select SQL'in geri arama işlevine Insert SQL yerleştiriyorum, ancak hatam var böyle:Node.js ve mysql Geri arama: sorgudaki sorgu geri bildirimi
{ [Error: Cannot enqueue Query after invoking quit.] code: 'PROTOCOL_ENQUEUE_AFTER_QUIT', fatal: false }
benim kod parçacığı burada:
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');
}
});
birisi bana bazı tavsiyeler verebilir misiniz? ----
aslında seçeneğini SQL geri çağırma işlevi anonim işlev değil, db.end() hakkında benim kod parçacığı böyle
---- güncelleme Teşekkür
: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 bağlantınızı bu koddan sonra bir yerde mi kapatıyorsunuz? – loganfsmyth
evet, db.query'yi bitirdiğimde ('select ...') db.end(); – Arvin
Bu, INSERT sorgunuzun çalıştırıldığı sırada bağlantının kapanacağı anlamına gelir. Lütfen bu kodu sorunuza ekleyin ve bir cevap vereceğim. – loganfsmyth