일부 데이터를 저장하는 데이터베이스가 있고 한 필드는 json 문자열입니다.PDO가있는 mysql 필드에서 json 필드 검색
나는이 분야에서 JSON을 삽입 : 나는 레코드를 검색 할 때
$stmt->bindParam(":settings", json_encode($widget->settings));
는 그럼 난 문자열로 설정 컬럼 내 행을 얻을. 내 데이터가 json이되어야하므로 내 레코드를 출력하기 전에이 필드를 디코딩해야합니다. 내가 갈 경우 설정을 탈출
"name":"My Name","label":null,"row":null,"settings":"{\"site\":\"dfsdf\",\"action\":\"UrlInfo\"}"
로 :
$app->response->setBody(json_encode($data, JSON_NUMERIC_CHECK));
내가 좋아하는 뭔가를 얻을. 먼저 설정을 디코딩 한 다음 내 결과를 출력하기 위해 다시 인코딩해야합니다. 어떻게 해결할 수 있습니까?
UPDATE :
내가 PDO를 사용하여 내 데이터 검색, 그래서 배열을 얻을 :이 저장하기 전에 내가 가진
$data = $stmt->fetchAll(PDO::FETCH_ASSOC);
을 :
"settings":{"site":"fff","action":"UrlInfo"}}
DB에 저장하기 전에 문자열의 값은 무엇입니까? – MrD
전에 동일한 json 문자열이 있습니다. 프론트 엔드로 angularjs를 사용하고 있습니다. 그래서 주로 자바 스크립트 객체로 작업합니다. – Tropicalista
귀하의 게시물에서 나는 귀하가 귀하의 데이터를 두 번 인코딩하고 있다고 결론 지을 수 있습니다. DB에 삽입하기 전에 처음으로, 그리고 DB에서 두 번째로 읽습니다. DB에서 데이터를 읽을 때 json_decode (YOUR STRING FROM DB) 데이터가 이미 인코딩되었으므로 미리 작성해야합니다. – MrD