【问题标题】:Problem trying to get database information (mysql)尝试获取数据库信息时出现问题(mysql)
【发布时间】:2021-10-13 09:55:05
【问题描述】:

我正在 Discord.js 中制作一个不和谐机器人,我需要数据库来检索和重写有关特定人员工作的信息 例如: 用户 1 想以农民的身份工作,因此用户 1 将输入.job farmer,他的信息将被存储或重写。

我正在使用 mysql2

这是我在mysql中用于表格的代码:

CREATE TABLE users (
    id CHAR(18) PRIMARY KEY,
    money INT,
    stable TINYINT,
    job VARCHAR(15),
    banned INT
);

这是我用于作业命令的代码(大写字母的 cmets 突出显示了我可能遇到问题但我不知道如何解决它们的地方)。

const db = require('../db.js');

module.exports = {
    name: 'job',
    description: 'selecione um trabalho para trabalhar',
    group: 'economia',
    aliases: ['trabalho','jobs','trabalhos'],

    async execute(message, args){
        const user_id = message.author.id;
        const [rows] = await db.query(`SELECT job FROM users WHERE id = ${user_id}`);

        var jobs = ['pintor','fazendeiro','pedreiro'];
        

        // create row
        if (rows[0] == undefined){
            db.query(`INSERT INTO users (ID, MONEY, STABLE, BANNED) VALUES (${user_id}, 0, 10, 0)`);
            
            if (!args[0]){
                message.reply(`Profissões disponíveis: ${jobs}. \n Para selecionar uma apenas passe o argumento depois de "job" no comando`);
            }

        } 
        
        if (args.length == 1){ // check for args 
            if(jobs.includes(args[0])){
                await db.query(`UPDATE users SET job = '${args[0]}' WHERE id = ${user_id}`); //HERE IT WON'T UPDATE THE JOB
                return message.reply(`agora você é um ${args}`);
            }
            else{
                message.reply('não existe essa profissão... Profissões disponíveis: carpinteiro, pintor.');
            }
        }
       
            
        
        
        // user has a job
        if (rows[0] !== null) {
            message.reply(`você é um ${rows[0]}. \n Profissões disponíveis: pintor, carpinteiro.`);
        } //PROBLEM HERE WHERE IT SHOWS '[object Object]' INSTEAD OF THE ACTUAL JOB 
        // doesn't have a job
        else {
            message.reply(`profissões disponíveis: ${jobs}. \n Para selecionar uma apenas passe o argumento depois de "job" no comando`);
        }
        
    }
}

【问题讨论】:

  • 这似乎是 MySQL 的一个非常老的版本。你确定吗? :) SELECT VERSION(); 进行验证。
  • 版本为8.0.26
  • 好的,所以我修复了更新表格的主要问题,现在我只需要修复它显示 [object Object] 表格没有更新的部分,因为我没有包含要插入行的值上的 ''。

标签: javascript mysql sql discord discord.js


【解决方案1】:

主要问题是表格的更新,表格没有更新,因为我没有在要插入行的值上包含“”。

我已经修好了 它说:

const [rows] //rest of code

我改成:

const [rows,fields]//rest of code

我遇到了这个问题,因为我认为我不需要“字段”,因为我的编辑程序告诉我“字段”已定义但从未使用过,所以我想,好吧,那我就删除它吧.. .(原来这是一个愚蠢的想法,我完全忘记了这一点)

【讨论】:

    猜你喜欢
    • 2019-09-03
    • 2020-01-16
    • 1970-01-01
    • 1970-01-01
    • 2017-05-17
    • 2016-01-15
    • 2021-11-26
    • 2020-07-02
    • 1970-01-01
    相关资源
    最近更新 更多