2017-11-07 8 views
0

메시지를 작성한 사람과 동일한 사용자 이름을 가진 사람이있는 데이터베이스에서 ROWID를 가져 오려고합니다. 이 코드는 내가 바꿀 때 작동한다나는 SQLITE_Error를 얻고 있습니다 : 그런 열은 없지만 그 이유는 무엇입니까?

WHERE creator` =${member.username} to WHERE matchid =` ${matchid}. 

그 경기에서 rowid를 얻는다. 그러나 나는 사용자가 창조자 인 곳에서 ROWID를 얻고 싶다. (나는 나의 db를 확인했고, 생성자 칼럼에는 Boanak 사용자 이름의 이름이있다). 내가 얻는 오류는 다음과 같습니다. {오류 : SQLITE_ERROR : 해당 열 없음 : Boanak errno : 1, 코드 : 'SQLITE_ERROR'}.

내 코드 : 당신은 문자열에 변수를 캡슐화 할 필요가

var getMatchid = function(client, message, callback) { 
    //let matchid = parseInt(args.join(' ')); 
    let member= message.member.user; 
    var db = new sqlite3.Database('Matches'); 
    db.serialize(function() { 
     db.all(`SELECT rowid 
     FROM Match 
     WHERE creator =`+${member.username}, function(err, allRows){ 
      if(err) { 
       //console.log(err); 
       callback(err, null); 
      } 
      else { 
       callback(null, allRows); 
      } 
      db.close(); 
     }); 
    }); 
    } 

getMatchid(client, message, function(err, data){ 
    if (err) { 
     console.log(err); 
    } 
    else if (data && data.length) { 
     message.channel.send(`Match ${data[0].rowid} found`); 

    } 
    else { 
     message.channel.send("That match ID doesnt exist."); 
    } 
    }); 
+0

가능한 복제 [SQLite는 삽입 문제 - 오류 : 그런 칼럼] (https://stackoverflow.com/questions/21958789/sqlite-insert-issue-error-no-such-column) – Veve

답변

0

. 또한 템플릿 리터럴을 사용하므로 식을 직접 내부에 넣을 수 있습니다.

`SELECT rowid 
FROM Match 
WHERE creator = "${member.username}"` 
+0

와우! 너무 쉽게! 고마워! – Boanak