电话号码改成2147483647?如何表示电话号码



因此,我创建了一个数据表,它请求用户的移动提供商(varchar)、电话号码和pin。除了当用户输入电话号码时,原始号码转换为2147483647之外,该表似乎工作得很好。我花了一些时间四处看看,发现这是因为我的表超出了32位的限制。为了解决这个问题,我需要在MYSQL数据库中使我的整数限制大于10(我最初拥有的)。

我已经改变MYSQL表使用PhpMyAdmin;然而,我仍然得到同样的问题。这是因为我现在需要在ii端更改一些东西吗?

我知道我可以使用CRUD来构造一个新的MVC关系——但是我已经在模型和控制器中添加了相当多的函数。是否有一种方法与Yii改变我的数据库在零碎的方式?也就是说不需要使用Crud?

尽管电话号码簿(DN)类似于整数,但使用任何宽度的整数来存储DN确实是非常糟糕的做法。

这是因为,正如您所发现的,将DNs当作整数来操作有时会损坏。

使用32位号码存储北美拨号计划号码(加拿大、加勒比地区、美国)是完全不正确的。在使用429区号时,即使您设法使用无符号整数,您的号码也会损坏。

使用varchar(20)就可以了。

这里有一些事情需要考虑:ITU-T推荐E.123表示电话号码。http://en.wikipedia.org/wiki/E.123

INT仍然是一个32位数字,INT(10)中的(10)是一个人为的上限,主要用于表示ZEROFILL应该填充到多远。

尝试BIGINT(10),因为这将允许所有10位数的数字,即使是大于2的31-1

最新更新