반응형
내가 원하는 것은 데이터베이스에 데이터가없는 경우 일부 데이터를 삽입하는 것이므로 Insert SQL을 Select SQL의 콜백 함수에 넣었지만 다음과 같은 오류가 발생했습니다.
{[오류 : 종료를 호출 한 후 쿼리를 대기열에 넣을 수 없습니다.] 코드 : 'PROTOCOL_ENQUEUE_AFTER_QUIT', 치명적 : false}
내 코드 스 니펫은 다음과 같습니다.
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 ()에 대한 코드 조각은 다음과 같습니다.
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.end ()
호출은 SELECT
가 완료되면 연결이 닫히도록 대기열에 추가되므로 내부 INSERT
쿼리를 수행하려고 할 때 , 데이터베이스 연결이 닫히므로 연결이 닫힌 후 새 명령을 큐에 넣으려고 할 때 PROTOCOL_ENQUEUE_AFTER_QUIT 오류가 발생합니다.
연결을 만드는 방법에 따라 db.end ()
호출을 콜백 내부로 이동하거나 db.end ()
호출이 전혀 없어야합니다. 프로그램 시작시 연결이 열린 경우.
참조 페이지 https://stackoverflow.com/questions/16134378
반응형
'MySql' 카테고리의 다른 글
MySQL Workbench가 데이터베이스 서버에 연결할 수 없음 (0) | 2021.01.03 |
---|---|
MySQL 레일에서 여러 테이블 결합 (0) | 2021.01.03 |
MySQL 루프없이 키로 다차원 배열의 값 합계 (0) | 2021.01.03 |
MySQL 데이터베이스에서 PHP 테이블로 특정 데이터를 가져 오는 방법은 무엇입니까? (0) | 2021.01.02 |
MySQL 삭제하기 전에 자바 스크립트 삭제 확인 (0) | 2021.01.02 |
댓글