插入mysql数据库时,Int值会发生变化 - php

时间:2011-01-06 03:57:49

标签: php mysql

我在mysql中有一个名为“userId”的字段:

`userId` int(20) NOT NULL

插入声明是:

$result = mysql_query("INSERT INTO users (userId, firstName, lastName, dateCreated) VALUES (".$me['userId'].", '".$me['first_name']."', '".$me['last_name']."', CURDATE()) ")or die(mysql_error());

在php中回显时userId的值是100000517980247,但是在插入时它会更改为2147483647.当我将其插入varchar字段时,它很好。这必须是非常简单的事情,但我搜索了一下,我只是没有看到它。

2 个答案:

答案 0 :(得分:8)

MySQL int是一个带符号的32位整数。您正在插入一个远远超出限制的数字,因此您将看到最大可能的整数,即2147483647。

将64位数据类型的数据类型更改为bigint,这将处理您的号码。

答案 1 :(得分:2)

您使用INT类型。你需要使用BIGINT类型。

http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html