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


convert string into integer when number over than 2147483647

$_GET[id];
$id=(int)$_GET['id'];
mysql store - int

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

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

和 MySQL 存储类型 - int


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

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

有什么方法可以将其转换为 bigint? 或者我不应该将字符串转换为 int?

我是否需要将 mysql 存储类型更改为 - bigint?

MySql 中的已签名INT最多只能达到 2^31,所以是的 - 您必须将列转换为 BIGINT .

除此之外,您还必须处理PHP的限制。PHP 中的整数不能大于 PHP_INT_MAX(确切的值取决于环境(,因此如果您坚持使用原语,大于该值的数字必须以字符串或浮点形式进行处理。将值保留为字符串应该是可以的,因为它是一个 id,并且您不会使用 id 进行数学运算。