【发布时间】: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