【问题标题】:SQL Database Not Updating | JavaScript | Discord BotSQL 数据库未更新 | JavaScript |不和谐机器人
【发布时间】:2019-05-23 07:31:17
【问题描述】:

更新:我认为问题在于我的数据库中的项目最初设置为 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");
});

【问题讨论】:

  • 我建议您阅读 MongoDB (mongodb.com) 和 Mongoose (mongoosejs.com/docs)。 MongoDB 是一个与 NodeJS 完全集成的数据库软件,而 Mongoose 是一个以简单简洁的方式访问该数据库的库。
  • 我已经有了数据库软件,我正在使用 sqlite 将 sql 插入到我的程序中。我会研究 Mongoose,但我不认为就是这样。
  • 有效点,没想到那么远。不,Mongoose 只是 MongoDB 的一个接口,你不能用它来与 SQL 交互。
  • 从安全的角度来看,这是一种不好的做法,我几乎可以肯定这很容易受到 sql 注入的影响,我建议清理您的输入,即“购物者”,并可能寻找一种访问方式没有直接字符串的数据库,使用存储过程是一种潜在的选择,我知道这不能直接解决您的问题,但我觉得值得注意。
  • 从未使用过他的库——sql.tun 是否返回一个表示更新了多少行的整数?更新了 1 行吗?如果没有,实际上是否存在该用户 ID 存在的行?更新甚至运行了吗?仅当用户已经持有物品时才会触发更新?如果 item 最初为 null 怎么办?

标签: javascript sql node.js discord discord.js


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2018-03-20
    • 2020-03-19
    • 2021-05-09
    • 2017-04-26
    • 2021-12-17
    • 2017-09-13
    • 2020-11-27
    • 2021-07-13
    • 2020-07-03
    相关资源
    最近更新 更多