我目前正在尝试使用 mysql2 包进行数据库连接制作一个小的 Discord 机器人。当我像这样设置我的数据库时:
const con = mysql.createConnection({
host: process.env.DB_HOST,
user: process.env.DB_USER,
database: process.env.DB_DATABASE,
password: process.env.DB_PASSWORD,
port: process.env.DB_PORT
});
(我的 .env 文件中的数据是 100% 正确的(,然后执行如下查询:
client.database.query("SELECT * FROM `guilds_settings` WHERE `guild` = ?", [message.guild.id], (err, results) => {
if(err) {
return client.log.error("Failed loading language for guild " + message.guild.id + ": " + err);
}
message.reply(results[0].language);
});
(client.database
=con
( 这只会给我错误"未选择数据库",即使我在创建连接时选择了数据库。
多亏了 esqew 的一个小提示,我能够修复它。就我而言,这导致我的数据库字符串未定义,因为我在创建连接后做了加载.env
文件的内容。一定要把这样的东西放在开头!:)