2010-01-12 61 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