每次我尝试存储ID 1008218499200959或任何其他“长”字样。对数据库的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;`
答案 0 :(得分:5)
问题在于MySQL基于您定义的id类型。最大的int值是2147483647.查看他们的文档:https://dev.mysql.com/doc/refman/5.5/en/integer-types.html
其他选项:
(有关详情,请参阅https://dev.mysql.com/doc/refman/5.0/en/numeric-type-overview.html)。
答案 1 :(得分:1)
这是一个数据库问题。这是最大的整数,你试图放入一个更大的值。您应该将值定义为decimal(20)
而不是int(20)
。
注意:Codeigniter可能有这个问题。
答案 2 :(得分:0)
实际上,当我们创建数据库时,我们永远不会给double inputFood(double monkeys[ROWS][COLS])
{
string day;
// remove monkeys here
for (int r = 0; r < ROWS; r++)
....
赋予价值。 int
使用INT
存储空间来存储值,并使用maximum value作为2147483647。
您可以选择两个选项
4Bytes
移除长度。 (只需放置int
)int
。所以你也可以定义长度(decimal
)