-3

可能重复:
如何将数组存储到 mysql 中?

这是我需要存储在数据库中的数组:-

$v=array(
"Image"=> array (
                 0=> array (
                                "id"=> 150,
                                "Tags"=> array(
                                                0=> array ( "id"=> 200, "text"=>"John Doe", "left"=> 250, "top"=> 50, "url"=> "person.php?id=200" ,"isDeleteEnable"=> true ),
                                                1=> array ( "id"=> 400, "text"=> "Michael Smith", "left"=> 420, "top"=> 45, "width"=> 120, "height"=> 120, "isDeleteEnable"=> true ),
                                                2=> array ( "id"=> 500, "text"=> "Peter Parker" ,"left"=> 55 ,"top"=> 40, "url"=> "person.php?id=500" ,"isDeleteEnable"=> false )
                                                )
                            )

                   )       

    ) ;

是否有任何功能可以做到这一点,以便整个数组可以存储在数据库中。我正在 LAMP 上开发。我还需要从数据库中再次检索这个数组。

4

3 回答 3

2

看一下serialize()

$db = serialize($v);

而且,当然,unserialize()要恢复它。

工作演示(使用您提供的数据)

于 2012-10-17T17:56:21.103 回答
1

你有几个选择。最值得注意的是,您可以对其进行序列化并将序列化的字符串存储在数据库中,然后用于unserialize将字符串转回数组。这是最直接的答案。

另一种选择是设置您的数据库以准确支持您正在执行的操作,方法是拥有一个image带有字段“id”的表,以及imagetag 带有字段imageid和字段的表,以及带有字段和字段的tagid表。tagidtext

此选项更加模块化,并且由您的数据库管理系统更好地管理。

于 2012-10-17T17:56:26.033 回答
0
$string = serialize($v);
$v = unserialize($string);
于 2012-10-17T18:02:17.627 回答