Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Int值在插入mysql数据库时发生更改-php_Php_Mysql - Fatal编程技术网

Int值在插入mysql数据库时发生更改-php

Int值在插入mysql数据库时发生更改-php,php,mysql,Php,Mysql,我在mysql中有一个表,其中有一个名为“userId”的字段: Insert语句是: $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中回显时,

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

Insert语句是:

$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字段时,它就可以了。这必须是非常简单的东西,但我搜索了一下,只是没有看到它。

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


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

您使用INT类型。您需要使用bigint类型


谢谢!在这种情况下,异常似乎更有用,而不仅仅是插入一个可接受的值。您可以启用strict mode(),这将使MySQL拒绝任何越界值。否则,它将静默地强制该值适合该字段
$result = mysql_query("INSERT INTO users (userId, firstName, lastName, dateCreated) VALUES (".$me['userId'].", '".$me['first_name']."', '".$me['last_name']."', CURDATE()) ")or die(mysql_error());