我在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字段时,它很好。这必须是非常简单的事情,但我搜索了一下,我只是没有看到它。
答案 0 :(得分:8)
MySQL int是一个带符号的32位整数。您正在插入一个远远超出限制的数字,因此您将看到最大可能的整数,即2147483647。
将64位数据类型的数据类型更改为bigint,这将处理您的号码。
答案 1 :(得分:2)
您使用INT类型。你需要使用BIGINT类型。