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

Php 如何将此json数组保存到MYSQL数据库,php,mysql,arrays,json,string,Php,Mysql,Arrays,Json,String,我想保存fb登录返回到数据库的json数组。然而,我真的不知道如何使用php将其转换为字符串 [{"id":"108124505876479","name":"Wakeboarding"},{"id":"112003352149145","name":"Bouldering"},{"id":"110008522357035","name":"Handball"}] 我在下面尝试了这段代码,但我甚至不能确定fb登录返回的是json数组还是非json数组 $json = '{"id":"10812

我想保存fb登录返回到数据库的json数组。然而,我真的不知道如何使用php将其转换为字符串

[{"id":"108124505876479","name":"Wakeboarding"},{"id":"112003352149145","name":"Bouldering"},{"id":"110008522357035","name":"Handball"}]
我在下面尝试了这段代码,但我甚至不能确定fb登录返回的是json数组还是非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;
                }
如果var_dump(json_decode($json))返回您期望的结果,只需将$json直接保存到数据库中即可。

使用:

 $json = serialize($json);
注意区别

$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);

到底是什么问题?或者可以正常工作。$json外部应该有方括号-用于检查它是否是有效的json。交叉手指,希望您永远不必查询保存为字符串的结构化数据。因为谁需要标准形式?我已经编辑了这个问题。$me等于什么?另外$json='$me['sports']';不是有效的代码。我想保存所有运动的字符串。应该有方括号围绕它所有。。。尝试将其复制到中,也可以使用var_dump(json_decode($json,true))将其转换为关联数组。现在返回的是:s:134:“{”id:“10812450586479”,“name:“Wakeboarding”},{”id:“112003352149145”,“name:“boulding”},{”id:“110008522357035”,“name:“Handball”};有没有办法只保存这些运动?$json='[{“id”:“108124505876479”,“name”:“Wakeboarding”},{“id”:“112003352149145”,“name”:“boulding”},{“id”:“110008522357035”,“name”:“Handball”}]$json=json_decode($json,true);foreach($json作为$value){$sports[]=$value[“name”];}$sports=serialize($sports);我已经编辑了这个问题。我得到的错误是,我从Facebook收到的是一个数组,而不是一个字符串。Facebook数组包含来自登录的用户数据。这工作正常。然而,我得到的错误是,我从Facebook收到的是一个数组,而不是一个字符串。我已经编辑了这个问题。你需要在方括号前后加引号,就像我在回答中说的那样。否则,尽管它是有效的Javascript,但它不是有效的PHP。顺便说一句,$me等于什么?可以对$me使用var_dump并复制和粘贴结果吗?
$output = implode(', ', $sports);
$string=mysql_real_escape_string($json);