2010-01-12 59 views
0

PHP中的value = NULL;value = "";有什么区别?value =“”;和值= NULL;在PHP中?

我面临奇怪的响应,如果我设置value = "";比我从数据库中得到空数组,这是应该得到,但如果我设置value = NULL;比我从mysql数据库而不是空数组响应空字符串响应。

我不确定为什么会出现这种情况。有什么建议么 !!!

+4

这是关于PHP或关于SQL数据库的问题吗?如果是关于PHP的话,那么数据库如何评价呢? – Thorarin 2010-01-12 16:58:53

回答

0

空字符串和NULL在MySQL中的处理方式不同。我对这个问题的一个类似的问题:

why use NOT NULL default = ''?

你有2个解决方案,在这里:

  • 将数据库中的字段(一个或多个)要检查到NOT NULL默认“”或类似的东西。
  • 重写您的查询,以便检查两种情况。例如:'where field =''OR field is NULL'
1

看一看

Working with NULL Values

直到 你习惯了它的NULL值可奇怪的。从概念上讲,NULL 表示“缺少一个未知值”,它与 其他值有所不同。要测试NULL,您不能使用运算符(如=,<或<>)的算术比较 >。 改为使用IS NULL和IS NOT NULL运算符。

+0

那不是PHP? – antpaw 2010-01-12 16:59:59

+0

不,但它是MySQL,它也在问题中加了标签,没有说明问题适用于哪个问题。投票决定减少业力打击(显然,这是一个很好的答案)。 – 2010-01-12 17:10:57

0

Value = NULL基本上将变量设置为空。而值=“”将其设置为空白字符串,而空白字符串可能看起来像什么都不是,它在技术上是一个排序值。 NULL和“”都是不同的值。

+0

它们实际上是完全不同的http://php.net/manual/en/language.types.null.php: $ var =“”; is_null($ var)为false。 – Parrots 2010-01-12 17:04:04

+0

好吧,你的权利: <?php if(''== null)echo“''== null”; if(''=== null)echo“''=== null”; 输出: ''== null – 2010-01-12 18:16:51