尝试获取数据库信息时出现问题(mysql)
Posted
技术标签:
【中文标题】尝试获取数据库信息时出现问题(mysql)【英文标题】:Problem trying to get database information (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] 表格没有更新的部分,因为我没有包含要插入行的值上的 ''。
【参考方案1】:
主要问题是表格的更新,表格没有更新,因为我没有在要插入行的值上包含“”。
我已经修好了 它说:
const [rows] //rest of code
我改成:
const [rows,fields]//rest of code
我遇到了这个问题,因为我认为我不需要“字段”,因为我的编辑程序告诉我“字段”已定义但从未使用过,所以我想,好吧,那我就删除它吧.. .(原来这是一个愚蠢的想法,我完全忘记了这一点)
【讨论】:
以上是关于尝试获取数据库信息时出现问题(mysql)的主要内容,如果未能解决你的问题,请参考以下文章
当我尝试从 Mysql 中获取数据时出现此问题 客户端中的握手错误(OS ErrorWRONG_VERSION_NUMBER(tls_record.cc:242)
从画布正确获取信息并通过带有 node-fetch 的 webhook 将信息发送到 discord 时出现问题
尝试使用 jQuery 获取 JSON 数据时出现 TypeError