使用php
json_encode 過,直接存入mysql報錯,google一下 沒有找到合適的解決方案,請問如何處理才能將json格式的資料存入mysql
代碼:
$imgs_str = json_encode($imgs_array); $imgs_str = addslashes($imgs_str); $update_query = "updatearticleset imageList = $imgs_str where id = $targetid";
這個問題已被關閉,原因:
回複內容:
使用php json_encode 過,直接存入mysql報錯,google一下 沒有找到合適的解決方案,請問如何處理才能將json格式的資料存入mysql
代碼:
$imgs_str = json_encode($imgs_array); $imgs_str = addslashes($imgs_str); $update_query = "updatearticleset imageList = $imgs_str where id = $targetid";
json編碼後的資料是這樣的:
{"key":"value"}
那sql就是這樣的:
insert into `table` (`field`) values ("{"key":"value"}")
所以就出錯了
完整代碼:
$data = json_encode($array);// 過濾$data = addslashes($data);// 入庫$db->insert($table_name,array( 'field' => $data,));
輸入有點不對題,PHP 裡的JSON也是用json_encode 來的(自己組合出來的當我沒說哈),用 serialize 函數 吧。直接存數組好了。
PHP 有一個 serialize 序列化函數,這問題你應該查文檔。
其實沒有必要在MYSQL中儲存JSON JSON這樣的格式:{"key":"vlaue"};在PHP 和 MYSQL 互動過程中很多餘。
如:@cevin 所說,
$data = json_encode($array);// 過濾$data = addslashes($data);// 入庫$db->insert($table_name,array( 'field' => $data,));
實際上已經做了一次無用功那就是 json_encode($data);何不直接 addslashes($data) 後直接入庫?