我试图从数据库中获取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.");
}
});
答案 0 :(得分:2)
您需要将变量封装在字符串中。您还使用模板文字,因此您可以直接将表达式放在里面。
`SELECT rowid
FROM Match
WHERE creator = "${member.username}"`