Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 当通过HTTP POST只有空字符串来自客户端时,处理数据库中的空值与空字符串_Mysql_Database_Content Management System_Null - Fatal编程技术网

Mysql 当通过HTTP POST只有空字符串来自客户端时,处理数据库中的空值与空字符串

Mysql 当通过HTTP POST只有空字符串来自客户端时,处理数据库中的空值与空字符串,mysql,database,content-management-system,null,Mysql,Database,Content Management System,Null,我的MySQL数据库有仔细定义的字段。如果某些字段可能未知,则允许空值 我正在写一个基于网络的CMS来处理数据库中的数据。显然,HTML表单中的post数组从不包含空值,只包含空字符串 我不想通过添加一个“空复选框”或诸如此类的东西来迷惑我的CMS用户,但我无法从post数组中判断字段是空的还是空的 对于允许空值的字段,是否应在保存时将所有空字符串转换为空值 对于这类难题,有哪些好的做法?这是一个棘手的问题。当然,用户无法知道是要插入空字符串还是什么都不插入。所以答案真的取决于你。是否允许用户输

我的MySQL数据库有仔细定义的字段。如果某些字段可能未知,则允许空值

我正在写一个基于网络的CMS来处理数据库中的数据。显然,HTML表单中的post数组从不包含空值,只包含空字符串

我不想通过添加一个“空复选框”或诸如此类的东西来迷惑我的CMS用户,但我无法从post数组中判断字段是空的还是空的

对于允许空值的字段,是否应在保存时将所有空字符串转换为空值


对于这类难题,有哪些好的做法?

这是一个棘手的问题。当然,用户无法知道是要插入空字符串还是什么都不插入。所以答案真的取决于你。是否允许用户输入空字符串?它这样做有什么意义吗?如果空字符串意味着空字符串没有的东西,并且定义良好,那么继续并允许两者

如果两者之间没有区别,就选择一个并坚持下去。我个人不明白为什么要保留空字符串,这只会让以后的事情变得更加混乱。只需使用NULL表示缺少数据


现在就做出决定,记录下来并坚持到底。

你真的想处理实际正确的
NULL
,以及它的棘手问题吗

根据我的经验,你很少真正想要
NULL
带来的显式不确定性。为用户不想填写的值存储一个空字符串通常更实用。然后,您可以继续执行搜索,如
WHERE t.field'x'
WHERE t0.field=t1.field
,而不必担心当其中一个或两个为空时,这会对布尔逻辑造成什么影响

如果您已经有了一个依赖于null的不确定性质的工作数据库,并且这是您的需求的固有部分,那么很好,坚持null(在这种情况下,您可能必须将可为null字段中的空用户输入转换为null,因为最终用户永远无法理解nothing和null之间的概念差异)

但就我个人而言,对于可选的外键引用,我仍然只使用null(当不使用单独的联接表时)