gpt4 book ai didi

PHP PDO 从数据库中检索 json 数组 - 删除不需要的字符

转载 作者:行者123 更新时间:2023-11-29 04:18:10 28 4
gpt4 key购买 nike

我将一个 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();

这给出了 for each 的错误,并输出数组(不可用)如下:

[{"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

非常感谢对我的错误提出建议

最佳答案

fetchAll() 返回一个行数组,而不是您期望的单个字段:

$statement = $this->db_connection->prepare("SELECT gp FROM gs WHERE c_s= :c_s");
$statement->bindParam(':c_s', $c_s);
$statement->execute();
$rows = $statement->fetchAll();
$data = $rows[0]['gp'];
$result = json_decode($data);

关于PHP PDO 从数据库中检索 json 数组 - 删除不需要的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34756150/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com