首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQlite错误:语法错误接近5 (better-sqlite3)

SQlite错误:语法错误接近5 (better-sqlite3)
EN

Stack Overflow用户
提问于 2020-01-15 23:13:43
回答 2查看 255关注 0票数 0
代码语言:javascript
复制
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表的名称。

EN

回答 2

Stack Overflow用户

发布于 2020-01-16 00:18:53

您在这里传递给'slice‘函数的参数:

代码语言:javascript
复制
const args2 = message.content.slice('test', ',', args).trim(args).split(' ', args);

没有任何意义。

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

中尝试使用args参数时

代码语言:javascript
复制
let userscore = sql.prepare(`SELECT bal FROM ${args}`).get()

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

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

票数 0
EN

Stack Overflow用户

发布于 2020-01-16 01:25:40

SELECT bal FROM ${args}

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

代码语言:javascript
复制
`SELECT bal FROM ${args[2]}`

当将数组转换为字符串时,它的元素与,连接在一起,并导致错误的语法,从而导致错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59754318

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档