【问题标题】:SQlite Error: Syntax error near 5 (better-sqlite3)SQlite 错误:5 附近的语法错误(better-sqlite3)
【发布时间】:2020-05-02 09:23:50
【问题描述】:
client.on("message", message => {
  const args = message.content.slice(config.prefix.length).trim().split(' ');
      const args2 = message.content.slice('test', ',', args).trim(args).split(' ', args);
  const command = args.shift().toLowerCase();
    if (command === "tbal") {
        if (message.author.bot) return;
    const data = sql.prepare(`SELECT bal FROM ${args}`).get();
      message.channel.send(`You have ${data.bal}`)
  }
  if (command == "tgive") {
    //Get their current XP
    let userscore = sql.prepare(`SELECT bal FROM ${args}`).get()
    let pointsToAdd = parseInt(args2[1], [10]);
    if(!pointsToAdd) return message.reply("How much? You didn't tell me that!");
    //XP level update
    const valueadd = sql.prepare(`INSERT OR REPLACE INTO ${args} (bal) VALUES (userscore + pointsToAdd);`)

    client.setScore.run(userscore)
    return message.channel.send(`${args} has received ${pointsToAdd}. New balance: ${data.bal}`);

}
});

有代码,我得到的错误是:let userscore = sql.prepare(`SELECT bal FROM ${args}`).get()

SqliteError: near "5": syntax error

靠近“5”的是args2,我对其执行了命令eco tgive args1 5,args1 是SQLite 表的名称。

【问题讨论】:

    标签: node.js discord.js better-sqlite3


    【解决方案1】:
    `SELECT bal FROM ${args}`
    

    您只需要使用args 数组中所需的元素,而不是每个参数。如果args1 是您提供的示例命令中的表名,请使用它作为您的查询,注意args[2] 正在返回数组中的第三个元素:

    `SELECT bal FROM ${args[2]}`
    

    将数组转换为字符串时,其元素会与, 连接在一起,从而导致格式错误的语法导致您的错误。

    【讨论】:

    • 将其添加到代码中,我得到SqliteError: no such table: undefined
    • @Kartingst 这意味着用户没有提供预期的参数。首先检查它是否存在。
    【解决方案2】:

    您在此处传递给“切片”函数的参数:

    const args2 = message.content.slice('test', ',', args).trim(args).split(' ', args);
    

    没有任何意义。

    Slice 有两个参数,一个 beginIndex 和 endIndex,都是数字。这可能是问题的根源。

    当你尝试使用 args 参数时

    let userscore = sql.prepare(`SELECT bal FROM ${args}`).get()
    

    它可能处于某种意想不到的状态。

    以下是有关 slice 方法的文档: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/slice

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-08
      • 2013-08-12
      相关资源
      最近更新 更多