2017-11-07 4 views
0

私はメッセージを書いたばかりの人と同じユーザー名を持つ人がいるデータベースからROWIDを取得しようとしています。コードが変更されたときに機能する私はSQLite_Errorを取得しています:そのような列はありませんが、それはなぜですか?

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

それは私にそのマッチからROWIDを取得します。しかし、私はユーザーが作成者である場所からROWIDを取得したい。 (私は自分のdbをチェックし、作成者の列にはユーザ名Boanakの名前がある)。私が得るエラーは次のとおりです:{エラー:SQLITE_ERROR:そのような列はありません:Boanak errno:1、code: '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

関連する問題