php将字符串转换为int而不提供正确的值

时间:2013-08-11 02:45:17

标签: php mysql integer-overflow

我正在与facebook api进行互动,而这正在向我发送一些相当大的内容 例如

$facebook_action['id'] => "123540931515315"
intval($facebook_action['id']) gives me "2147483647"

在我的数据库中,我曾计划将其存储为整数但是这些可能太大了,因为在php转换中返回给我最大的int值。 我应该将它们作为字符串存储而不是如何处理它?<​​/ p>

在MySQL中我看到我可以使用BIG INTEGER但是如何在PHP中处理这个?

2 个答案:

答案 0 :(得分:1)

将系统升级到64位架构以处理该大整数值:)

intval的“返回值”部分明确说明了获得2147483647的原因。

即。 32位系统的最大有符号整数范围为-2147483648至2147483647.

答案 1 :(得分:1)

你超过了PHP中整数类型的限制。 32位系统的最大有符号整数范围为-2147483648到2147483647.由于您使用的值超过2147483647,因此它存储2147483647.请参阅http://php.net/manual/en/function.intval.php。您可能希望执行某些评论者建议的操作,并使用varchar,尤其是在这些值可能包含非数字字符的情况下。