gpt4 book ai didi

php - 从 postgres 中检索数组

转载 作者:行者123 更新时间:2023-11-29 13:19:47 25 4
gpt4 key购买 nike

非常基本的问题,但找不到解决方案。

在一个包含一些值的表中,我尝试在 1 列中存储一个数组 (int[]) 并检索它。存储和搜索工作正常,但如果我选择它,我会在 php 中将其作为字符串获取。

表周

col id (int) = 1
col days (int[]) = {1,1,1,1,1,0,0}

PHP

$query = SELECT id, days, manyother FROM week //array_to_json(days) does the same result
$pdo->setAttribute( PDO::ATTR_CASE, PDO::CASE_NATURAL );
$result = $pdo->query($query);

$test = $result->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($test)

返回:

id: 1
days: "[1,1,1,1,1,0,0]"
manyother: ""

我确定我错过了一些关于 json_encode/decode 的东西编辑:它不受 json_encode 的影响,我调试了它并在它返回类似“[1,1,1,1,1,0,0]”的值之前。

编辑 2:找到了一个有效但加载时间增加 15* 倍的解决方案 :D 所以问题仍然悬而未决,但我目前有一个解决方法。

foreach($test as $key => $value){
$test[$key]['days'] = json_decode($value['days']);
}

最佳答案

选择数组时,你可以修改数组的显示方式:

t=# select json_build_array(array[1,2,3,4])->0;
?column?
-----------
[1,2,3,4]
(1 row)

它应该很容易被 php 然后用 eval 求值。或者甚至在整个数据集上使用 json_agg 然后进行评估:

t=# select json_agg(s162) from s162;
json_agg
[{"i":0,"a":[1,2,3,4]},
{"i":1,"a":[1,4]}]
(1 row)
Time: 0.281 ms

关于php - 从 postgres 中检索数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44066775/

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