Mysql返回错误的bigint结果,非常奇怪的错误

use*_*888 6 mysql rest bigint node.js

我真的不知道这里发生了什么.我有一个如下所示的数据库表:

在此输入图像描述

有了这些数据:

在此输入图像描述

当我SELECT * FROM game WHERE id = 4在phpmyadmin中运行此查询时,我按预期返回此结果:

在此输入图像描述

但是当我通过rest api(其中gameId = 4)对它进行查询时

var query = connection.query("SELECT * FROM game WHERE id = ? ",[game.gameId],function(err,rows){ 
Run Code Online (Sandbox Code Playgroud)

我得到了这个结果

在此输入图像描述

由于某种原因,adminId被减去一个.我真的不知道发生了什么.我试过放下桌子并重新设置它,有没有人经历过这个?或者知道出了什么问题?这非常令人沮丧!谢谢

c.P*_*.u1 17

可以安全地表示的最大整数JavaScript是Number.MAX_SAFE_INTEGER,它是2 ^ 53 - 1.您的值大于该值,这导致一些位丢失.

节点MySQL有supportBigNumbersbigNumberStrings该解析选项BIGINTS作为字符串.

var connection = mysql.createConnection({
                            supportBigNumbers: true,
                            bigNumberStrings: true
                 });
Run Code Online (Sandbox Code Playgroud)