2015-06-06 49 views
0

我無法將此數組保存到MySQL。如何將JSON編碼數組保存到MySQL

$arr = array("red","green","blue"); 

json_encode($arr); 

$results = $db->query("UPDATE settings SET data='$arr' WHERE type='testing'"); 

數據庫字段更新,只是顯示「陣列」

回答

1

只要將它傳遞給變量爲。你不工作,因爲你已編碼的陣列,但是當你閱讀的json_encode的描述,你可以看到這句話並沒有通過編碼值

$arr = json_encode($arr); 

$results = $db->query("UPDATE settings SET data='$arr' WHERE type='testing'"); 
+0

您正在使用錯誤的名稱作爲變量,因此您建議$ arr是一個不是事實的數組。您應該將其更改爲像$ json這樣的名稱。 –

+0

downvoters downvote的原因 –

+0

@Frankbeen你壓低了 –

0

因爲你已經廢棄的json_encode()值,通過改變這一行json_encode($arr);保存到

$arr = json_encode($arr); 

或者,如果您想保留您的$arr供將來使用,請更改您的查詢,如

$results = $db->query("UPDATE settings SET data='{json_encode($arr)}' WHERE type='testing'"); 
0

返回包含JSON表示形式的字符串的價值。

因此,您必須獲取結果並將它們首先保存在變量中。您可以使用相同的東西並覆蓋它們:

$arr = array("red","green","blue"); 
$arr = json_encode($arr); 
$results = $db->query("UPDATE settings SET data='$arr' WHERE type='testing'"); 

然後它應該工作。