我得到SQLITE_Error:没有这样的列,但它存在为什么?

时间:2017-11-07 00:23:04

标签: node.js sqlite discord

我试图从数据库中获取rowid,其中有来自刚刚写过邮件的人的用户名相同的人。当我改变

时代码有效
 WHERE creator` =${member.username} to WHERE matchid =` ${matchid}.

它从那场比赛中得到了我的rowid。但我想从用户是创建者的地方获取rowid。 (我检查了我的数据库,在创建者列上有用户名Boanak的名称)。我得到的错误是:{错误:SQLITE_ERROR:没有这样的列:Boanak错误: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.");
  }
  });

1 个答案:

答案 0 :(得分:2)

您需要将变量封装在字符串中。您还使用模板文字,因此您可以直接将表达式放在里面。

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