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
notINT
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.我想你说国际号码是对的,尤其是不用的时候。