你的位置:
问答吧
-> PHP基础
-> 问题详情
mysql怎么让字符串插入默认值为0的tinyint(1)字段中不出错
例子:
表A 中有 一字段 B 类型 tingint(1) 不能为空 默认值 为 0
我现在 要执行 insert into A (B) values ('aaa'); 怎么能让mysql 不报错
结果是 插入数据了 B字段的值 是0
不要告诉不可能, 这是可能的。我自己试过。
但是 在另一台电脑 就不可以,我求解决方法
作者: jiemack
发布时间: 2010-09-29
引用楼主 jiemack 的回复:
不要告诉不可能, 这是可能的。我自己试过。
能将aaa插入进tinyint类型的字段中?
作者: kyzy_yy_pm
发布时间: 2010-09-29
就算进去了也会被自动转成0
作者: kyzy_yy_pm
发布时间: 2010-09-29
insert into A (B) values ((int)'aaa')
作者: RXPY2007
发布时间: 2010-09-29
引用 2 楼 kyzy_yy_pm 的回复:
就算进去了也会被自动转成0
对这个我知道, 是自动转0 , 我就是问下怎么能让它不报错就行
作者: jiemack
发布时间: 2010-09-29
引用 2 楼 kyzy_yy_pm 的回复:
就算进去了也会被自动转成0
我用的两台电脑 测试的。 只有版本不一样其他的都一样,
但是只有一台电脑 不报错问。我想问下什么原因
作者: jiemack
发布时间: 2010-09-29
如果是php代码的话那么就intval('aaa')就行了,如果直接在mysql中的话就不知道如何做了
作者: kyzy_yy_pm
发布时间: 2010-09-29
报错说明严谨,不报错反而不正常;
写代码要规范;
建议将'aaa'插入数据库前先验证下类型长度是否符合,不符合的话提示错误或强制转换
作者: RXPY2007
发布时间: 2010-09-29
引用 7 楼 rxpy2007 的回复:
报错说明严谨,不报错反而不正常;
写代码要规范;
建议将'aaa'插入数据库前先验证下类型长度是否符合,不符合的话提示错误或强制转换
嗯。 你说的对,报错是正确的,我只不过想知道,在什么情况下或者设置什么mysql 才能不报错, 就不是严谨。只想弄懂什么原因
作者: jiemack
发布时间: 2010-09-29
呵呵 我弄明白了。 还是要感谢你们
作者: jiemack
发布时间: 2010-09-29
这是 mysql 严格模式
作者: jiemack
发布时间: 2010-09-29