当数字超过2147483647时,将字符串转换为整数

时间:2013-09-25 09:30:22

标签: php

$_GET[id];

$id=(int)$_GET['id'];

mysql store - int

我有一个关于将字符串转换为整数的问题。

(转换帖子ID以确保用户不发送字符串)

和mysql存储类型 - int


我注意到如果id大于2147483647,则数字变得疯狂。

如果网站帖子超过2147483647怎么办?

是否可以将其转换为bigint?或者我不应该将字符串转换为int?

我是否将mysql商店类型更改为 - bigint?

1 个答案:

答案 0 :(得分:1)

在MySql can only go up to 2^31中签名INT,是的 - 您必须将列转换为BIGINT

除此之外,您还必须处理PHP的限制。 PHP中的整数不能大于PHP_INT_MAX(确切的值取决于环境),因此如果您坚持使用基元,则必须以字符串或浮点形式处理大于该值的数字。将值保存为字符串应该没问题,因为它是一个id,而你不用id做数学。