0

我有以下 JSON:

"list": {
            "list_id": "2kA",
            "title": "Social Media",
            "description": "Trending",
            "image": [
                "http://cdn.socialmediaexaminer.com/wp-content/uploads/2012/11/br-campaign-report.png?9d7bd4",
                "http://cdn.socialmediaexaminer.com/wp-content/uploads/2012/11/br-campaign-report.png?9d7bd"
            ],
            "views": 65
        }

如何在数据库中存储图像数组的序列化版本?执行以下任何操作都会返回错误:

$images = $item->list->image;
$images = $item->list->image->[0];
$images = $item->list->['image'];

多谢你们!

4

2 回答 2

1

you can access to your images like this:

foreach($item->list->image as $your_image) {
    //do what you want
}

or use a associated array like this

$x = json_decode('{"list": {
            "list_id": "2kA",
            "title": "Social Media",
            "description": "Trending",
            "image": [
                "a",
                "b"
            ],
            "views": 65
        }}', true);

foreach($x['list']['image'] as $your_image) {
    //do what you want
}

to save it to your db use json_encode (and escape), as example of a mysqli connection

$query = 'INSERT INTO your_table (...)
          VALUES (\''.mysqli_real_escape_string($dblink, json_encode($your_array)).'\')';

on select you can use json_decode!

于 2013-02-19T06:36:26.797 回答
1
In your DB, data is in JSON, literally it means its a formatted string like:    
"something here...."

You cannot access it by "->" as it is not an object.  

So,
Convert your string(JSON) to Object to access like these:
$x['list']['image'] 
It can be achieved by json decoding your string which will convert your string to object

There was a bad error in code too. This one : $item->list->image->[0]; 
you cannot access an element of an array like this image->[0] --> it should be 
$item->list->image[0]
于 2013-02-19T06:45:28.903 回答