为什么有时将空值存到数据库却显示为0有时为空
为什么有时将空值存到数据库显示为0有时却为空
在表单中总会有一些选项是选填的,当用户不填的时候可将值null传到数据库,那么存到数据库一定是空值吗?
这和数据类型有关:
首先明白不可为空意思是:在数据库里填充数据时不可将值设置为null值,空的字符串不等于null
1:当某一项设置可以为空时:
如果数据是表单提交过来的,这一项,未填则填入数据库时默认变成空字符串,无论设置的是什么类型
如果不是表单提交的(即在数据库里添加数据时)未填 int类型默认为0 、其它字符类型(char,vachar)则默认为null
2:当某一项设置不可为空时:
如果数据是表单提交过来的,这一项,未填则填入数据库时默认变成空字符串,无论设置的是什么类型
如果不是表单提交的(即在数据库里添加数据时)未填 对于mysql来说分两种情况:
第一种:使用sql语句添加 例如 INSERT INTO student(name) VALUES(null); 如果name设置是不可为空则报错
第二种:在phpmyadmin添加数据时 name项未填,则以空字符串添加
PS:如果之前数据库某一项设置可以为空,并且有某条数据的这一项为null,此时修改此项变为不可为空会报错,
需要将为null的那条数据修改为其它值方可修改