Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.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
Mysql 2147483647上的Varchar问题_Mysql_Varchar - Fatal编程技术网

Mysql 2147483647上的Varchar问题

Mysql 2147483647上的Varchar问题,mysql,varchar,Mysql,Varchar,有2147483647MYSQL问题 在电话字段中插入一个11位数的号码时,我得到了保存在DB:2147483647 TEL设置为VARCHARnotINTtough 另外,在服务器上托管的数据库上,我有相同的数据库表,但没有相同的问题?!可能是什么 这就是SQL和PHP tel_no varchar(20) utf8_general_ci Yes NULL mob_no varchar(20) utf8_general_ci Yes NULL 这就是MYSQL。是的,我正

2147483647
MYSQL问题

在电话字段中插入一个11位数的号码时,我得到了保存在
DB:2147483647

TEL设置为
VARCHAR
not
INT
tough

另外,在
服务器上托管的数据库上,我有相同的数据库表,但没有相同的问题?!可能是什么

这就是SQL和PHP

tel_no  varchar(20) utf8_general_ci  Yes    NULL
mob_no  varchar(20) utf8_general_ci  Yes    NULL
这就是MYSQL。是的,我正在数据库中插入一个11位数字作为字符串

$telno = GetValue($post['tel_no']);
$mobno = GetValue($post['mob_no']); 

$sql = "UPDATE ".$this->dbpre."bookings SET tel_no='$telno', mob_no='$mobno'...

你能帮忙吗?我快疯了

2147483647是mysql的最大int值。只需将类型从int更改为bigint。

检查并

解决方案:只需将类型从int更改为bigint或将varchar更改为bigint

可能的重复没有意义。您是否使用相同的前端接受电话号码来测试两个平台?显示您的SQL总是很好的。在某个地方,您有一些非SQL代码,可以提取varchar列并开始将其视为整数。您是说您有一个varchar(11),然后在其中输入一个11位数字,然后返回其他内容?可能不是MySQL,而是您的编程语言无法处理64位数字…?我在另一台服务器上托管的不同数据库上没有相同的问题。。真奇怪。这可能是某种类型的服务器设置吗?虽然您认为数字是最大的(有符号的)int值是正确的,但答案不是变为bigint,而是从int变为varchar,因为电话号码无法正确保存为整数(由于未知长度、前缀(如果适用)、用于格式化的空格字符等原因).谢谢@N.B.我想你说国际号码是对的,尤其是不用的时候。