【发布时间】:2013-08-11 02:45:16
【问题描述】:
我正在与 facebook api 交互,它向我发送了一些相当大的 id 比如
$facebook_action['id'] => "123540931515315"
intval($facebook_action['id']) gives me "2147483647"
在我的数据库中,我计划将它存储为一个整数,但是这些可能太大,因为在 php 转换中返回给我最大的 int 值。 我应该将它们存储为字符串还是如何处理?
在 MySQL 中,我看到我可以使用 BIG INTEGER,但是如何在 PHP 中处理它?
【问题讨论】:
-
我遇到了同样的问题。我刚刚将其设为
varchar。不是说这是最佳实践,但这是我所做的。还因为如果 Facebook 决定在他们的 ID 中添加字母或一些奇怪的东西怎么办。由于您不控制传入的数据,因此我说要灵活。整数非常严格,它们不能以 0 开头。所以,简单地说,字符串对于您无法控制的数据更加灵活。 -
varchar 是在 PHP 中将其视为字符串的方法
-
字符串...反正你别无选择...
-
啊,好的,谢谢!实际上,我只是让它在 mysql 中使用 BIG INT,将其视为 php 中的字符串并让 mysql 转换为 big int,尽管它感觉并不强大。
-
我会将其保留为字符串。无论如何,您都不会使用该数字进行计算,或者它代表一个数量或类似的东西。它是实际上是一个字符串,只是它包含数字。
标签: php mysql integer-overflow