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

tes*_*ssa 0 php mysql

我在mysql中有一个表,其中包含一个名为"userId"的字段:

`userId` int(20) NOT NULL
Run Code Online (Sandbox Code Playgroud)

插入语句是:

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

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

Mar*_*c B 8

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

对于64位数据类型,将数据类型更改为bigint,这将处理您的数字.