phpmyadmin 我怎么才能避免这种情况呢?

nlejzf6q  于 2022-11-09  发布在  PHP
关注(0)|答案(1)|浏览(148)

我正在向数据库请求bigint,但是Node.js改变了我的请求值,所以我的程序无法运行。
下面是我的代码:

let query = `SELECT transcriptchannel FROM guilds WHERE guild_id = 933323734322913301;`
    sql.query(query, function(err, result){
        if(err) throw err;

        console.log(result);
}

控制台记录:

[ RowDataPacket { transcriptchannel: 946134226196123600 } ]

但是,如果我在PHPmyAdmin中运行相同的语句,它将如下所示:

SELECT transcriptchannel FROM guilds WHERE guild_id = 933323734322913301;

它将返回:

946134226196123658

为什么Node.JS会将值向上舍入?我该如何防止它?

vojdkbi0

vojdkbi01#

当数字大于Number.MAX_SAFE_INTEGER时,会发生这种情况。
请尝试以下操作,查看是否获得预期值:

const sql = mysql.createConnection({supportBigNumbers: true, bigNumberStrings: true});

参考-https://github.com/mysqljs/mysql

相关问题