我知道这个问题之前已经在这个网站上处理过,但我已经尝试了我所看到的一切,并且在某些季节没有任何效果......所以它可能是更具体的东西。再次,如果我可能错过了一些东西,我深表歉意,但我是新人,并且对为什么这不起作用感到沮丧......
我的代码是这样的:
bot.on(`message`, async message => {
if(message.author.bot) return;
if(message.channel.type === "dm") return;
con.query(`SELECT * FROM profile WHERE id = '${message.author.id}'`, (err, rows) => {
if(err) throw err;
var sql;
if(rows.length < 1) {
var sql = (`INSERT INTO profile (id, username) VALUES (${message.author.id}, ${message.author.tag})`);
};
con.query(sql, console.log);
if (err) throw err;
console.log("1 record inserted");
});
我正在尝试将该人的 Discord ID 和用户名放入数据库中。我对该代码有数十种不同的配置,并且它不断给我带来语法错误。我注意到 mySQL 8.0 与我看过的其他教程相比有非常不同的语法要求。我引用了 mySQL 网站来尝试找出我的问题。我在这个问题上花了两天时间,我已经束手无策了,所以我寻求帮助!
预先感谢您的宝贵时间! :)
最佳答案
快速浏览一下,您的第二个查询中的引号丢失了。假设两个字段都是字符串类型,它应该看起来像这样:
sql = (`INSERT INTO profile (id, username) VALUES ('${message.author.id}', '${message.author.tag})'`);
(如果 id
或 username
不是字符串,而是数字类型,您可以删除相应的 '
。)
关于javascript - Discord 机器人开发的 SQL 语法问题 (mySQL 8.0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51042573/