如何将此json数组保存到MYSQL数据库

时间:2014-02-04 09:52:06

标签: php mysql arrays json string

我想保存这个我的fb-login返回数据库的json数组。但是我真的不知道如何使用php将其转换为字符串。

[{"id":"108124505876479","name":"Wakeboarding"},{"id":"112003352149145","name":"Bouldering"},{"id":"110008522357035","name":"Handball"}]

我在下面尝试过这段代码,但我甚至不太确定fb登录返回是否是json数组。

$json = '{"id":"108124505876479","name":"Wakeboarding"},{"id":"112003352149145","name":"Bouldering"},{"id":"110008522357035","name":"Handball"}';

var_dump(json_decode($json));

我如何能够以字符串形式将不同的运动保存到我的数据库?

非常感谢任何帮助。

感谢。

编辑:上半部分返回NULL。


第二次编辑:

if (array_key_exists('sports', $me)){


                    $json = '$me['sports']'; PROBLEM IS HERE
                    $data = json_decode($json, true);
                    $sports = array();
                    foreach ($data as $item) {
                        $sports[] = $item['name'];
                    }

                    $user->fb_sports = $sports;
                }

5 个答案:

答案 0 :(得分:3)

$json = '[{"id":"108124505876479","name":"Wakeboarding"},{"id":"112003352149145","name":"Bouldering"},{"id":"110008522357035","name":"Handball"}]';
$data = json_decode($json, true);
$sports = array();
foreach ($data as $item) {
    $sports[] = $item['name'];
}

如果你想用逗号分隔它们:

$output = implode(', ', $sports);

答案 1 :(得分:1)

使用:

 $json = serialize($json);

答案 2 :(得分:0)

如果var_dump(json_decode($ json))返回您希望将$ json直接保存到数据库中的内容。

答案 3 :(得分:0)

$json1 = '{"id":"108124505876479","name":"Wakeboarding"},{"id":"112003352149145","name":"Bouldering"},{"id":"110008522357035","name":"Handball"}';
$json2 = '[{"id":"108124505876479","name":"Wakeboarding"},{"id":"112003352149145","name":"Bouldering"},{"id":"110008522357035","name":"Handball"}]';

var_dump(json_decode($json1,true));
var_dump(json_decode($json2,true));

注意差异

答案 4 :(得分:0)

$string=mysql_real_escape_string($json);