加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 将值作为2147483647插入到数据库中

发布时间:2020-12-13 22:43:10 所属栏目:PHP教程 来源:网络整理
导读:我尝试输入数据库的所有电话号码都插入2147483647. 数据库字段是整数(11). 在插入电话号码之前,它会通过以下代码删除所有空格,短划线和括号: if (!empty($hphone)) $phone = $hphone;else if (!empty($HomePhone)) $phone = $HomePhone;else if (!empty($Ph
我尝试输入数据库的所有电话号码都插入2147483647.

数据库字段是整数(11).

在插入电话号码之前,它会通过以下代码删除所有空格,短划线和括号:

if (!empty($hphone)) $phone = $hphone;
else if (!empty($HomePhone)) $phone = $HomePhone;
else if (!empty($Phone1)) $phone = $Phone1;
$phone = preg_replace("/[^0-9]/","",$phone);

为什么每次拨打电话号码为2147483647,无论电话号码是多少?

如果可以,请将电话号码转换为VARCHAR字段,不要将其存储为有符号(或无符号)数值(int,bigint,double等等).

在这种情况下,MySQL的2147483647中签名INT的限制是导致您的问题的原因.插入此字段的任何较大的内容都将限制在该最大值.

例如,如果电话号码555-555-5555大于该限制(5555555555> 2147483647),则存储它将导致最大值2147483647.

我还建议不要将其存储为BIG INT或任何其他数字类型.你将如何处理扩展或特殊编码字符,如:

+02 112020 10020  
   1-333-232-9393 x203

BTW:不知道第一个是真正的非美国数字格式,但你明白了

此外,具有相关前导0的电话号码将使其中的一些丢失数量:

021-392-9293

将是数字213929293

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读