【发布时间】:2016-04-17 19:19:33
【问题描述】:
我在数据库的一行中存储一个 JSON 数据数组,并尝试检索该数组以便在 foreach 循环中使用。
下面的代码是我将用于 foreach 循环的代码,但我在实际使用 PDO 检索数据时遇到了一些麻烦,需要使用。
$data = '[{"id":"H592736029375"},{"id":"K235098273598"},{"id":"B039571208517"}]';
$array = json_decode($data, true);
foreach($array as $data){
echo $data['id'];
}
我遇到的问题是使用 PDO 检索要放入 $data 的数组。目前我有这个查询和代码,其输出如下。
$statement = $this->db_connection->prepare("SELECT gp FROM gs WHERE c_s= :c_s");
$statement->bindParam(':c_s', $c_s);
$statement->execute();
$data = $statement->fetchAll();
$result = json_encode($data, true);
return $result;
与以下代码混合显示数组:
foreach ($result as $key) {
echo $key['id'];
}
print_r($result);
die();
这给每个错误,并输出数组(不可用)如下:
[{"gp":"[{\"id\":\"H592736029375\"},{\"id\":\"K235098273598\"},{\"id\":\"B039571208517\"}]","0":"[{\"id\":\"H592736029375\"},{\"id\":\"K235098273598\"},{\"id\":\"B039571208517\"}]"}]
作为我拥有的第一段代码,我可以根据需要使用数据,我只需要一些指导,了解如何正确地从数据库中获取数组,然后在 foreach 中使用。
我知道我目前使用的是 json_encode 而不是 json_decode,使用 json_decode 会出现以下错误:
Warning: json_decode() expects parameter 1 to be string, array given
对我的错误提出建议将不胜感激
【问题讨论】: