我正在嘗試將 json 陣列保存在 mysql 中,但出現錯誤。首先,我曾嘗試使用內爆函式將其保存為字串。但是在獲取資料時沒有得到相同的字串。現在嘗試按原樣保存 json 字串。這樣我就可以輕松獲取它。這是 json 字串
{"us_id":"1","stu_id":"6","class_id":"3","req_x":[
{ "u_id":"1", "u_details":"testing user", "charges":"12.50"},
{ "u_id":"2", "u_details":"testing user 2", "charges":"10.50" },
{ "u_id":"3", "u_details":"testing user 3", "charges":"9.50" }
]}
我需要在 db 的 diff 列中保存 req_x 欄位
$req_x = '[
{ "u_id":"1", "u_details":"testing user", "charges":"12.50"},
{ "u_id":"2", "u_details":"testing user 2", "charges":"10.50" },
{ "u_id":"3", "u_details":"testing user 3", "charges":"9.50" }
]';
這是使用內爆保存json字串的代碼
$req_dets= implode("&",array_map(function($a) {return implode("|",$a);},$req_x));
現在我想簡單地使用它來保存它
json_decode($req_x)
但它不起作用。回傳錯誤 json_decode() 期望引數 1 是給定的字串陣列
uj5u.com熱心網友回復:
如果您從這個 JSONstring 開始
$start =
'{ "us_id":"1",
"stu_id":"6",
"class_id":"3",
"req_x":[
{ "u_id":"1", "u_details":"testing user", "charges":"12.50"},
{ "u_id":"2", "u_details":"testing user 2", "charges":"10.50" },
{ "u_id":"3", "u_details":"testing user 3", "charges":"9.50" }
]
}';
而您只想將req_x陣列保存到資料庫中....
$obj = json_decode($start);
$arr = $obj->req_x;
// make a json string of that
$json_req_x = json_encode($arr);
echo $json_req_x;
結果是一個 JSONString
[
{"u_id":"1","u_details":"testing user","charges":"12.50"},
{"u_id":"2","u_details":"testing user 2","charges":"10.50"},
{"u_id":"3","u_details":"testing user 3","charges":"9.50"}
]
現在,您可以$json_req_x像處理任何其他列一樣使用 INSERT 或 UPDATE將字串放入資料庫中。
uj5u.com熱心網友回復:
該列的資料型別是什么?要存盤 JSON 資料,請嘗試將列資料型別更改為 JSON。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/378949.html
下一篇:使用ISODate轉換查詢
