Mysql 返回一个不正确的 bigint 结果,非常奇怪的错误

标签 mysql node.js rest bigint

我真的不知道这是怎么回事。我有一个看起来像这样的数据库表:

enter image description here

有了这些数据:

enter image description here

当我在 phpmyadmin 中运行这个查询 SELECT * FROM game WHERE id = 4 时,我得到了预期的结果:

enter image description here

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

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

我得到了这个结果

enter image description here

其中 adminId 由于某种原因被减一。我真的不知道发生了什么。我试过把 table 放下来再放回去,有没有人经历过这种情况?或者知道哪里出了问题?真令人沮丧!谢谢

最佳答案

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

node-mysql 有 supportBigNumbersbigNumberStrings 选项将 BIGINT 解析为字符串。

var connection = mysql.createConnection({
                            supportBigNumbers: true,
                            bigNumberStrings: true
                 });

关于Mysql 返回一个不正确的 bigint 结果,非常奇怪的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28759036/

相关文章:

Javascript/REST/Activiti - 我在 XMLHttpRequest 中做错了什么?

c# - 网络 API 2 : BadRequest with custom error model

mysql - 在mysql数据库中添加分钟并与Time.now进行比较

php - 和[Db 到 PHP 到 JSON 到 AJAX 到 HTML] 速度差异

php - 有没有更好的方法来 include() 依赖于不同 MySQL 查询的 PHP 循环?

JavaScript 对象属性计数限制,删除最早更新的

node.js - 连接到 MongoLab 数据库时验证失败,代码 18

mySQL 大写表名

node.js - 使用服务器方法进行内存缓存中的 Hapi 不接受对象作为参数

java - Jersey REST 错误,找不到媒体类型 = application/json 的 MessageBodyWriter