【发布时间】:2014-07-07 14:42:16
【问题描述】:
所以,我创建了一个数据表,要求用户提供移动服务提供商 (varchar)、电话号码和密码。该表似乎运行良好,除了当用户输入电话号码时,原始号码转换为 2147483647。我花了一些时间环顾四周,我了解到这是因为我的表超出了 32 位限制。为了解决这个问题,我需要在 MYSQL 数据库中使我的整数限制大于 10(我最初拥有的)。
我已经使用 PhpMyAdmin 更改了 MYSQL 表;但是,我仍然遇到同样的问题。这是因为我现在需要在 Yii 端更改一些东西吗?
我知道我可以使用 CRUD 来构建新的 MVC 关系 - 但我已经在模型和控制器中添加了很多功能。 Yii 有没有办法以零碎的方式更改我的数据库? IE。无需使用 Crud?
【问题讨论】:
-
存储编号为 varchar。
-
从上一个答案中检查一下,它被转换为 2147483647 stackoverflow.com/questions/23550231/…
-
电话号码从来没有,也永远不会是“整数”。如果您坚持继续使用 int,则使用 bigint,它是 64 位数据类型。一个未签名的大整数最多可以将 18,446,744,073,709,551,616 表示为“电话号码”
-
只有在你认为数学有意义的情况下才使用整数。您是否需要对电话号码执行任何数学运算?不,因此它应该存储为字符串,而不是整数。
标签: php mysql telephony integer-overflow