node.js 上的 Sqlite3 产生 SQLITE_ERROR

Posted

技术标签:

【中文标题】node.js 上的 Sqlite3 产生 SQLITE_ERROR【英文标题】:Sqlite3 on node.js makes an SQLITE_ERROR 【发布时间】:2020-05-23 03:51:45 【问题描述】:
const sqlite3 = require('sqlite3').verbose()
const Discord = require('discord.js')
module.exports = 
    name: '가입',
    aliases: ['면접', '면접보기', '회사입장', '캐스트당함'],
    description: 'CEO봇의 회사에 면접을 봐요(항상 합격당하는 이상한 회사)',
    run: async (client, message, args) => 
        let db = new sqlite3.Database('./database.db', sqlite3.OPEN_READWRITE | sqlite3.OPEN_CREATE, (err) => 
            if(err)
                const embed=new Discord.RichEmbed()
                .setColor('blue')
                .setFooter(message.author.tag, message.author.displayAvatarURL)
                .setTimestamp()
                .setTitle(`데이터베이스를 불러오는데 에러가 있었습니다`)
                .setDescription(`에러 내용: **$err.message**`)
                message.channel.send(embed)
             
        )
        db.run('CREATE TABLE USERS(id text, name text, money int, where int, sawhe int, vip int, black int, present int, nitropresent int, nwemool int, admin int', function(err)
            if(err)
                const embed=new Discord.RichEmbed()
                .setColor('blue')
                .setFooter(message.author.tag, message.author.displayAvatarURL)
                .setTimestamp()
                .setTitle(`데이터베이스의 테이블을 생성하는데 에러가 있었습니다`)
                .setDescription(`에러 내용: **$err.message**`)
                message.channel.send(embed)
            

        )
        db.close((err) => 
            if(err)
                const embed=new Discord.RichEmbed()
                .setColor('blue')
                .setFooter(message.author.tag, message.author.displayAvatarURL)
                .setTimestamp()
                .setTitle(`데이터베이스를 저장(종료)하는데 에러가 있었습니다`)
                .setDescription(`에러 내용: **$err.message**`)
                message.channel.send(embed)
            
        )
    

我正在使用 node.js 制作一个 Discord Bot,并将使用 sqlite3 作为数据库。 这是我的代码(请忽略韩语)。 如果我在 Visual Studio 代码上运行代码,则会发生错误 SQLITE_ERROR: near "where": syntax error。 请回答问题^^

【问题讨论】:

【参考方案1】:

我的猜测是,由于where 是 SQL 语法中的受限词之一,因此解析器会尝试以不同方式解析查询。

where 更改为location 应该可以解决它。

另外,您需要在插入语句的末尾关闭括号。

【讨论】:

以上是关于node.js 上的 Sqlite3 产生 SQLITE_ERROR的主要内容,如果未能解决你的问题,请参考以下文章

使用 SQLite3 + Node.js 的最佳实践

使用 node.js 检查数据是不是包含在 SQLite3 数据库中

如何在运行 Node.js 的 Debian 上安装 sqlite3?

如何在 node.js 中使用 sqlite3 执行批量插入?

Node.js sqlite3 IN 运算符

markdown rest-api使用node.js和sqlite3