在mysql表字段中保存php stdClass对象

时间:2015-09-06 09:42:41

标签: php mysql

有没有办法在没有更改对象的mysql表字段中保存php stdClass对象?

这是我的目标:

stdClass Object
(
    [product] => stdClass Object
        (
            [id] => 413860
            [name] => SB25
            [description] => Array
                (
                    [0] => AMD Athlon 64 3700+
                    [1] => 2x RAM 1024 MB DDR
                    [2] => 2x HDD 320 GB SATA
                    [3] => RAID Controller 2-Port SATA PCI - 3ware 8006-2LP
                )

            [traffic] => 20 TB
            [dist] => Array
                (
                    [0] => Rescue system
                )

            [arch] => Array
                (
                    [0] => 64
                )

            [lang] => Array
                (
                    [0] => en
                )

            [cpu] => AMD Athlon 64 3700+
            [cpu_benchmark] => 568
            [memory_size] => 2
            [hdd_size] => 320
            [hdd_count] => 2
            [datacenter] => 1
            [price] => 21.01
            [price_setup] => 0.00
            [price_vat] => 21.01
            [price_setup_vat] => 0.00
            [fixed_price] => 1
            [next_reduce] => 0
        )

)

我想在mysql中保存这个对象,稍后再检索它... 谁能帮我? 感谢

2 个答案:

答案 0 :(得分:2)

在将对象保存到数据库之前,您应该尝试 serialize() ,并在返回查询结果时 unserialize()

根据您用来实例化对象的类的复杂程度,您可能需要在类上实现Serializable接口。

尽管如此,将整个对象存储在数据库中可能不是一个好习惯。

答案 1 :(得分:1)

按照此测试代码进行..

 $obj = your object;
 $link= mysqli_connect("localhost","root","","book_data");
 $query= "insert into tbbook (Booktitle ) values('$obj') where ID=1";
 mysqli_query($link, $query) or die(mysqli_error($link));

此代码运行良好。

1)您的数据类型应为varchar。 2)根据物体的长度设定柱的大小。