【问题标题】:discord.js sqlite bind or column index out of rangediscord.js sqlite 绑定或列索引超出范围
【发布时间】:2017-11-01 23:38:36
【问题描述】:

所以我正在为不和谐创建一个机器人,这里的代码会向加入服务器的人发送 PM:

client.on("guildMemberAdd", member => {
    let guild = member.guild;
    console.log(`${member.user.username} has joined your server`);
        member.user.send('Welcome to my server!');
});

我正在尝试使用 sqlite 创建一个数据库来记录加入用户 ID 和用户名的人,这就是我所拥有的:

  client.on("guildMemberAdd", member => {
    let guild = member.guild;
    console.log(`${member.user.username} has joined your server`);
    sql.run(`UPDATE users SET userId = ${member.id} WHERE userId = ${member.id}`);
        member.user.send('Welcome to my server!');

    sql.get(`SELECT * FROM users WHERE userId = '${member.id}'`).then(row => {
            if (!row) {
            sql.run('INSERT INTO users (userId, username) VALUES (?, ?)', [member.id, 1, 0]);
        } else {
            sql.run(`UPDATE users SET username = ${member.user.username} WHERE userId = ${member.id}`);
        }

    }).catch(() => {
        console.error;
        sql.run('CREATE TABLE IF NOT EXISTS users (userId TEXT, username TEXT)').then(() => {
            sql.run('INSERT INTO users (userId, username) VALUES (?, ?)', [member.id, 1, 0]);
        });

    });
});

我得到:

UnhandledPromiseRejectionWarning:未处理的承诺拒绝(拒绝 id:2):错误:SQLITE_RANGE:绑定或列索引超出范围,代码有什么问题?有人能解决吗?

【问题讨论】:

    标签: node.js sqlite discord


    【解决方案1】:

    sql.run('INSERT INTO users (userId, username) VALUES (?, ?)', [member.id, 1, 0]); 您提供了 3 个值(member.id、1 和 0),而您只有 2 个(userId 和用户名)。此外,sql.get() 不会返回承诺,因此您不能使用 .then() 。第二个参数是回调函数,它有两个参数,可能的错误和行,所以你的代码应该看起来像

    sql.get('SELECT * FROM users WHERE userId = ?',[member.id] , (err,row) => {
            if (!row) {
            sql.run('INSERT INTO users (userId, username) VALUES (?, ?)', [member.id, 1]);
        } else {
            sql.run('UPDATE users SET username = ? WHERE userId = ?', [member.user.username, member.id]);
        }
    })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-30
      • 2020-09-26
      相关资源
      最近更新 更多