使用php和mysql存储和检索多维数组

时间:2009-05-21 15:11:37

标签: php mysql sql serialization

我在PHP中有一个多维数组,如下所示:

$array = array(
    "Part1" => array(
        "Subpart1" => array(0, 1),
        "Subpart2" => array(1, 0)
    ),
    "Part2" => array(0),
    "Part3" => array(0, 1, 0)
);

现在我想将这个数组存储在一个MySQL表中,并在另一个PHP页面上再次检索它。

我一直在尝试使用serialize()unserialize()

$array= serialize($array);

然后在另一页

$array= $row['Array'];
$array2 = array();
$array2 = unserialize($array);

但我似乎做错了什么,一开始我得到了{em> bool(false)的var_dump,现在我得到了{em> NULL <{1}} / em>的

4 个答案:

答案 0 :(得分:8)

您的代码看起来不错......

有一件事可以解决你的问题,如果你的列太小 - 如果使用VARCHAR(255),你的数据可能会被截断而不会反序列化。如果您添加$row['Array']的值,我可以看到它是否完整。

答案 1 :(得分:3)

使用列类型TEXT。序列化数据通常不适合VARCHAR(255)。

答案 2 :(得分:1)

你可以使用json编码,json_encode($ array),你将获得一个json表示法的字符串值,这样你就可以存储在数据库中,并且可以执行json_decode($ string,true),这样你就可以转换为数组再次。如果你没有将true参数传递给json_decode,它将转换为stdClass。

答案 3 :(得分:0)

详情       的数量       的       的                                                                                                                                                                                                                                                                                                                                                                                                                                                   的         金额总和                                                       的                   <强>其他                                   其他金额                                                           的                  税                  总                                                    

这是我在php / html中的表格。 我需要存储和检索php详细信息(p),数量(q),费率(r)作为单独的表格格式