2016-05-10 57 views
0

我使用PHP代碼由以下命令回聲使用JSON編碼一些MySQL的項目:回聲null與在PHP JSON編碼

echo json_encode($Bcore).",".json_encode($Brow).",".json_encode($Bcol).",".json_encode($Bdir).",".json_encode($Bid).",".json_encode($Bname).",".json_encode($Bi).",".json_encode($Bii).",".json_encode($Biii).",".json_encode($Fcore).",".json_encode($Frow).",".json_encode($Fcol).",".json_encode($Fdir).",".json_encode($Fid).",".json_encode($Fname).",".json_encode($Fi).",".json_encode($Fii).",".json_encode($Fiii); 

這導致下面的輸入時,在數據庫中的一些表項爲空:

"x","y","z",null,null,null ... etc 

反正是有打印空在jsonencode格式是這樣的:

"x","y","z","","","" 

因爲我需要outpu每個條目都要雙引號。

+1

爲什麼你不只是JSON編碼數組而不是單個條目? – tadman

+1

問題是,'null'和'「」'是不同的值。所以,你必須在'json_encode'之前使它們成爲'''''。 –

+0

DB null和PHP null是不同的。只有PHP null將以這種方式進行編碼。 – AbraCadaver

回答

1

我會做一個替換。

if (is_null($value)) { 
    $value = ''; 
} 

您正在採取的一般方法可能存在更深層次的問題。我會去programmers.stackexchange.com並詢問他們是否有更好的方法來實現您的目標。

+0

謝謝,這工作,我使用每個變量的函數,然後再回應它。 –

+0

@SheriffSaidElahl謝謝,接受,如果這是正確的答案。 – Goose

1

在json_encode()之前,您可以使用array_walk_recursive來檢查值是否爲空。如果它爲空,則將其轉換爲「」。