每次我尝试将 id 1008218499200959 或任何其他“long”int 值存储到数据库时,它都存储为 2147483647,并且我将数据长度设置为 20,所以我猜长度应该不是问题。
这是 CodeIgniter 还是数据库问题?
我后来通过将数据类型更改为 varchar 来修复它,但我仍然想知道为什么它会这样。谢谢。
--表applicants
的表结构
CREATE TABLE IF NOT EXISTS `applicants` (
`id` int(20) NOT NULL,
`first_name` varchar(20) NOT NULL,
`last_name` varchar(30) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;`
最佳答案
问题出在基于您定义的 id 类型的 MySQL。最大的 int 值是 2147483647。查看他们的文档:https://dev.mysql.com/doc/refman/5.5/en/integer-types.html
其他选项:
- 签名的 BIGINT 可以让你到 9223372036854775807
- 未签名的 BIGINT 可以让你得到 18446744073709551615
- DECIMAL 的最大位数是 65
(有关详细信息,请参阅 https://dev.mysql.com/doc/refman/5.0/en/numeric-type-overview.html)。
关于php - CodeIgniter 不断为 int 值插入 2147483647,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33113225/