[英]Retrieve a json field from mysql field with PDO
我有一个数据库,用于存储一些数据,并且一个字段是json字符串。
我在此字段中插入一个json:
$stmt->bindParam(":settings", json_encode($widget->settings));
然后,当我尝试检索记录时,将设置列作为字符串显示在行中。 我需要我的数据是json,因此我应该在输出记录之前解码此字段。 如果我去:
$app->response->setBody(json_encode($data, JSON_NUMERIC_CHECK));
我得到类似的东西:
"name":"My Name","label":null,"row":null,"settings":"{\"site\":\"dfsdf\",\"action\":\"UrlInfo\"}"
与设置转义。 我应该先解码设置,然后再次编码以输出结果。 我该怎么解决?
更新:
我使用PDO检索数据,因此得到一个数组:
$data = $stmt->fetchAll(PDO::FETCH_ASSOC);
在保存之前,我有:
"settings":{"site":"fff","action":"UrlInfo"}}
检索数据时,应使用json_decode
反转插入时的编码。
foreach ($data as &$row) { // Use reference so we can modify in place
$row['settings'] = json_decode($row['settings']);
}
$app->response->setBody(json_encode($data, JSON_NUMERIC_CHECK));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.