我正在使用JavaScript,node.js和discord.js制作Discord机器人,并且正在使用SQL来实现经济系统和商店系统。经济系统运行良好,但是我在商店系统的早期阶段遇到了一些麻烦。没有弹出任何实际的错误,但是当我使用buy
命令时,它会发送一条消息,表明我购买了buy命令后所说的内容之一。但是,它实际上并没有更新数据库,并且当我使用另一个命令检查库存中有什么时,它说应该在其中显示新项目的地方没有任何价值。我已经检查了大小写等。如果有人知道为什么会这样,我将不胜感激。谢谢! (另外,我正在使用sqlite。)
我的buy
命令的代码:
client.on("message", message => {
const buy = (item) => {
if (message.content.length > 5) {
if (sql.get(`SELECT "${item}" FROM "${message.guild.id}" WHERE userId = "${message.member.id}" AND "${item}" IS NOT NULL`)) {
sql.run(`UPDATE "${message.guild.id}" SET "${item}" = "${item}" WHERE userId = "${message.member.id}"`);
message.channel.send(`${message.author}, one ${item} was added to your inventory.`);
}
}
}
const cart = (shopper) => {
if (message.content.startsWith(prefix + "buy " + shopper)) buy(shopper);
}
cart("Sullustan steak");
cart("cape");
cart("Roddy-Mobile");
cart("fried Rodian");
cart("pulse cannon");
});
答案 0 :(得分:0)
我认为问题在于数据库中的项目最初设置为NULL,因此无法更改为int。如果有人因为同样的问题而在该线程上绊脚石,请尝试将NULL更改为0。