1、问题:
写了个注册页面,在本地服务器没有报错,上传到空间之后出现了这个问题。
字面上来看是某个字段没有设置默认值。
根据提示找到这条sql语句 `integral` varchar(225) NOT NULL ,这里只设置了非空,并没有设置默认值,可以设置默认值来排除错误在后面加上 DEFAULT ‘ 想要的值‘,就可以了
当然,也可以在进行数据库操作的时候顺便插入该值,也能达到相同效果。
2、思考:
为什么在本地进行数据库操作的时候就不报错呢,检查数据库,相关字段下面的确没有赋值。查了一下,应该是mysql 5.0以上版本都默认是Strict Mode
Strict Mode:
1) 不支持对not null字段插入null值
2) 不支持对自增长字段插入‘‘值,可插入null值
3) 不支持 text 字段有默认值
关闭方法:
找到MySQL目录下的my.ini
将sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
修改为sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
重新启动 Mysql服务
3、延伸:
有几种情况同样也可能产生同样的报错信息
(1) id 作为主键,int类型,未设置 auto_increament
(2) 少字段