mysql字段值被“劫持”?

程更新 发布于 2015/03/16 16:57
阅读 601
收藏 0

请教各位:
正在使用yii开发,今天出现了个奇怪的问题:一个“手机号”字段名称为“mobile”,无论是新增记录还是更新记录,总会被一个固定的数字填充,手工在phpmyadmin中修改了,再使用程序更新还是会变成那个固定值,那个固定值应该是测试时曾经写入过的,但无论现在怎样修改,总会保存那个值。请教这是怎么回事?

加载中
0
zy_3g
zy_3g
触发器?
0
hmh
hmh
1、那个固定数值是什么?mobile字段 用什么类型的?
2、请检查程序!
0
纠结名字
你这样冤枉mysql真的好吗
0
OSC首席键客
OSC首席键客
是不是你程序里面给写死了哦!
0
程更新
程更新

多谢几位,我又手工在phpmyadmin中测试了一下,不通过程序,这个字段也有问题,字段类型是“int(11)”,和它相同类型的还有其它字段,也是一样,当值达到10个数字时就会被修改为“2147483647”(这个数字应该是我测试时曾经使用过的)。删除了字段再重新添加上,还是这样。

出现错误时mysql提示:Warning: #1264 Out of range value for column 'mobile' at row 1


甘薯
甘薯
大锅这么简单的数据表示范围溢出还用得着上来问...
0
程更新
程更新
经测试,甚至ID字段,所有类型为int(11)的字段都是如此,值的长度达到或超过10就会变成“2147483647”!
0
程更新
程更新
再测试了一下不同数据库中的一张表,也是如此:类型为int(11),值达到或超过10个数字时就会变成“2147483647”,如果类型是int(10),当值达到或超过10个数字时就会自动变成“4294967295”。很显然是mysql的问题了,大家没遇到过吗?麻烦试一下你的表,也有这个情况吗?
hmh
hmh
我就猜到是这个问题才问你。 1、那个固定数值是什么?mobile字段 用什么类型的?
寒情漠漠
寒情漠漠
你先搞明白int的最大值是多少 11位的手机号你当int存当然超了
0
工程师爸爸
工程师爸爸
大哥啊 手机号你怎么存 int 呢。。。
0
程更新
程更新

找到这个答案了:int(10)与int(11)后的括号中的字符表示显示宽度,整数列的显示宽度与mysql需要用多少个字符来显示该列数值,与该整数需要的存储空间的大小都没有关系,int类型的字段能存储的数据上限还是2147483647(有符号型)和4294967295(无符号型)。

但为什么字段中会出现这两个上限值呢?

0
南湖船老大
南湖船老大
小弟弟,别逗。。。int值的最大范围是-2^32~2^32,你也不知道么,溢出了,你造不。。。好好看看书吧,任何一本教材和课本都会提到,基础太差。
返回顶部
顶部