javascript - Discord 机器人开发的 SQL 语法问题 (mySQL 8.0)

标签 javascript mysql node.js discord discord.js

我知道这个问题之前已经在这个网站上处理过,但我已经尝试了我所看到的一切,并且在某些季节没有任何效果......所以它可能是更具体的东西。再次,如果我可能错过了一些东西,我深表歉意,但我是新人,并且对为什么这不起作用感到沮丧......

我的代码是这样的:

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})'`);

(如果 idusername 不是字符串,而是数字类型,您可以删除相应的 '。)

关于javascript - Discord 机器人开发的 SQL 语法问题 (mySQL 8.0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51042573/

相关文章:

Javascript:访问多维数组的属性

javascript - 通过标签选择过滤拉力赛网格

php - Sql select count 使用五个条件

php - PDO 错误 : SQLSTATE[HY000]: General error: 2031

php - 如何从 4 列中有 3 列具有相同值的表中进行选择?

javascript - Node Sequelize - 插入日期 "as is"而不转换为 UTC

javascript - 鼠标离开的jquery问题

JavaScript Web 应用程序与 Android 应用程序离线通信

node.js - 从 browserify 和 uglify 生成 sourcemap

javascript - Node.js:创建一个 txt 文件而不写入设备