为什么有时将空值存到数据库却显示为0有时为空

为什么有时将空值存到数据库显示为0有时却为空

在表单中总会有一些选项是选填的,当用户不填的时候可将值null传到数据库,那么存到数据库一定是空值吗?

这和数据类型有关:

为什么有时将空值存到数据库却显示为0有时为空

  首先明白不可为空意思是:在数据库里填充数据时不可将值设置为null值,空的字符串不等于null

1:当某一项设置可以为空时:

     如果数据是表单提交过来的,这一项,未填则填入数据库时默认变成空字符串,无论设置的是什么类型

     如果不是表单提交的(即在数据库里添加数据时)未填 int类型默认为0  、其它字符类型(char,vachar)则默认为null

 2:当某一项设置不可为空时:

    如果数据是表单提交过来的,这一项,未填则填入数据库时默认变成空字符串,无论设置的是什么类型

    如果不是表单提交的(即在数据库里添加数据时)未填 对于mysql来说分两种情况:

   第一种:使用sql语句添加 例如 INSERT INTO student(name) VALUES(null); 如果name设置是不可为空则报错

   第二种:在phpmyadmin添加数据时 name项未填,则以空字符串添加 

PS:如果之前数据库某一项设置可以为空,并且有某条数据的这一项为null,此时修改此项变为不可为空会报错,

需要将为null的那条数据修改为其它值方可修改