首页 > 解决方案 > SQL 数据库未更新 | JavaScript | 不和谐机器人

问题描述

更新:我认为问题在于我的数据库中的项目最初设置为 NULL,因此无法更改为 int。如果有人因为有同样的问题而绊倒了这个线程,请尝试将 NULL 更改为 0。

我正在使用 JavaScript、node.js 和 discord.js 制作一个 Discord 机器人,并且我正在使用 SQL 来实现经济系统和商店系统。经济系统运行良好,但我在商店系统的早期阶段遇到了一些麻烦。没有弹出任何实际错误,但是当我使用该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");
});

标签: javascriptsqlnode.jsdiscorddiscord.js

解决方案


我认为问题在于我的数据库中的项目最初设置为 NULL,因此无法更改为 int。如果有人因为有同样的问题而绊倒了这个线程,请尝试将 NULL 更改为 0。


推荐阅读