数据库中保存11位的电话号码一般使用的是int型,长度11,因为int型的最大长度就是11位。
亲!感觉有用请采纳,谢谢!!
推荐用varchar,char的长度是固定的,而varchar的长度是可以变化的, 比如,存储字符串“abc",对于char(10),表示你存储的字符将占10个字节(包括7个空字符),而同样的varchar (10)则只占用3个字节的长度,10只是最大值,当你存储的字符小于10时,按实际长度存储,如果数据量很大的话,可以节省很大的存储空间。
千万不要用int这类的,因为电话号码开头的0是存不住的,造成数据丢失,那损失就大了。
以电话号码11883419968为例:。
int只有四个字节,32bit,最高一位是符号位存储空间不计数,也就是-2^31~2^31-1转换为十进制为-2147483648~2147483647(21亿多),而int默认十进制 ,比较最大值2147483647<11883419968(118亿多),所以超出,超出部分虽然还在计数,但是超过的机器读不出来算溢出,于是int不能拿来处理电话号码。
存成字符串类型,因为有可能也涉及到“-”这样的字符串 你设成char 或者是varchar类型的 长度给11就行了。
电话号码是一组数字,因为它不用作计算,一般不必作为int数据,只须存为varchar字符串类型就可以了。为进一步缩减空间最好指定最大长度,如:varchar(13/26)。
当然,在数据存入之前必须在前端检查是否为数字类型;而从数据库读取的时候选字符类型,如sprintf("my phone is %s",$num)。