gpt4 book ai didi

mysql - LimeSurvey 使用数据库中的 JSON 字符串

转载 作者:行者123 更新时间:2023-11-29 12:36:56 25 4
gpt4 key购买 nike

当我使用 LimeSurvey 的管理工具向我的调查添加附加字段时,数据库中的 attributeescriptions 字段如下所示;

a:1:
{
s:11:"attribute_1";
a:4:
{
s:11:"description";
s:4:"Unit";
s:9:"mandatory";
s:1:"N";
s:13:"show_register";
s:1:"N";
s:7:"cpdbmap";
s:0:"";
}
}

当我输入另一个时,数据库中的字段如下所示;

a:2:
{
s:11:"attribute_1";
a:4:
{
s:11:"description";
s:4:"Unit";
s:9:"mandatory";
s:1:"N";
s:13:"show_register";
s:1:"N";
s:7:"cpdbmap";
s:0:"";
}

s:11:"attribute_2";
a:4:
{
s:11:"description";
s:9:"Something";
s:9:"mandatory";
s:1:"N";
s:13:"show_register";
s:1:"N";
s:7:"cpdbmap";
s:0:"";
}
}

我现在需要一种动态方式将“Unit”和“Something”一词放入我可以使用的数组中。

这是我获取 json 字符串的代码;

$sql = $dbh->prepare($sql);
$sql->execute();
$result = $sql->fetchAll(PDO::FETCH_ASSOC);

print $result[0]["attributedescriptions"];

我在 PDO 方面很糟糕。我已经尝试过了;

$result = var_dump(json_decode($result[0]["attributedescriptions"], true);

$result = var_dump(json_decode($result["attributedescriptions"], true);

$result = var_dump(json_decode($result[0], true);

我收到错误;

Warning: json_decode() expects parameter 1 to be string, array given in /var/www/html/surveys/survey-admin/functions/functions.php on line 189 NULL

最佳答案

不是 JSON,它是序列化数据:

序列化:

$serialized_data = base64_encode(serialize($data));

反序列化:

$unserialized_data = unserialize(base64_decode($serialized_data));

base64_encode() 用于避免损坏,如果数据损坏,unserialize() 将返回 false。

关于mysql - LimeSurvey 使用数据库中的 JSON 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26635830/

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