PHP + mysql:如何存储大整数

时间:2015-02-27 14:00:25

标签: php mysql

我有一个在线游戏的数据库,我需要存储用户玩游戏的总分。每次用户结束比赛时,他的分数将自动更新。 我试图将此分数保持为VARCHAR,然后从脚本中检索它,解析为int,添加最后一个分数,再次解析为字符串,以及更新数据库。但正如我所看到的,php无法管理大数字。我该怎么办?

2 个答案:

答案 0 :(得分:2)

MySQL有BIGINT类型。 PHP本身与BIGINT完美配合。

除非你想要比这更大的数字,否则我不知道为什么你会使用其他任何东西。

注意:无符号BIGINT是BIGINT

的两倍

unsigned BIGINT可以存储的数字最多为: 18,446,744,073,709,551,615
signed BIGINT可以存储以下数字: 9,223,372,036,854,775,807 (或者在结尾处使用8

所以基本上,你可以存储大约1,8 * 10 ^ 19的数字。需要更多?然后查看BC at the other answer here

作比较:
INT时,unsigned最多可以存储 2,147,483,647 或两倍,这意味着BIGINT大致 4,294,967,295 大于INT。是。 BIGINT基本上非常接近INT^2

答案 1 :(得分:0)

You need to use BC

您可以使用BC在PHP中使用数字作为字符串,因此它们是任意大的,因为您已经在数据库中使用它。

最好的问候。