繁体   English   中英

使用PDO从mysql字段检索json字段

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM