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

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

  [{“id”:“108124505876479”,“name”:“Wakeboarding”},  { “ID”: “112003352149145”, “名称”: “抱石”},{ “ID”: “110008522357035”, “名称”: “手球”}] 
上</代码> </ PRE>

我已尝试过以下代码,但我甚至不太确定fb登录返回是否为json数组。</ p>

  $ json ='{“  ID “:” 108124505876479" , “名”: “水上滑板”},{ “ID”: “112003352149145”, “名”: “抱石”},{ “ID”: “110008522357035”, “名”: “手球”  }'; 

var_dump(json_decode($ json));
</ code> </ pre>

我如何能够在字符串中将不同的运动保存到我的数据库?< / p>

非常感谢任何帮助。</ p>

谢谢。</ p>

编辑:上半部分返回NULL。< / p>


第二次编辑:</ p>

  if(array_key_exists('sports',$ me)){
\ n
$ json ='$ me ['sports']'; 问题在这里
$ data = json_decode($ json,true);
$ sports = array();
foreach($ data as $ item){
$ sports [] = $ item ['name'] ;
}

$ user-&gt; fb_sports = $ sports;
}
</ code> </ pre>
</ div>

展开原文

原文

I want to save this json array that my fb-login returns to a database. However I don't really know how to convert that into a string using php.

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

I have tried this code below but I am even not quite sure anymore whether what the fb login return is a json array or not.

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

var_dump(json_decode($json));

How would I be able to save the different sports to my database in a string?

Any help would be much appreciated.

Thanks.

EDIT: The upper part returns NULL.


SECOND EDIT:

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;
                }

drlh197610
drlh197610 $me等于什么?另外$json='$me['sports']';是无效的代码。
6 年多之前 回复
duan1227
duan1227 我编辑了这个问题。
6 年多之前 回复
dongzhiju0324
dongzhiju0324 并交叉你的手指,希望你永远不必查询保存为字符串的结构化数据。因为谁需要正常形式?
6 年多之前 回复
dtfpznrbn503027700
dtfpznrbn503027700 $json应该在外面有这些方括号-使用jsoneditoronline.org来检查它是否是有效的JSON。
6 年多之前 回复
dqf35839
dqf35839 究竟是什么问题?json_encode或序列化应该可以正常工作。
6 年多之前 回复

5个回答



  $ json ='[{“id”:“108124505876479”,“name”:“Wakeboarding”},{“  id“:”112003352149145“,”name“:”Bouldering“},{”id“:”110008522357035“,”name“:”Handball“}]'; 
$ data = json_decode($ json,true); \ n $ sports = array();
foreach($ data as $ item){
$ sports [] = $ item ['name'];
}
</ code> </ pre>

如果你想用逗号分隔它们:</ p>

  $ output = implode(',',$ sports); 
</ code> </ pre>
< / DIV>

展开原文

原文

$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'];
}

if you want commas separating them:

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

duanchu0031
duanchu0031 可以使用$ me使用var_dump并复制并粘贴结果吗?
6 年多之前 回复
dtbhp60824
dtbhp60824 你需要在方括号前后的引号,就像我在答案中所说的那样。 否则它是无效的PHP虽然它是有效的Javascript。 BTW什么是$ me等于?
6 年多之前 回复
dpb75177
dpb75177 这很好用。 但是,我得到的错误是我从Facebook收到的是一个数组,而不是一个字符串。 我编辑了这个问题。
6 年多之前 回复



使用:</ p>

  $ json = serialize($ json); 
< / code> </ pre>
</ div>

展开原文

原文

use :

 $json = serialize($json);

donglangtun1850
donglangtun1850 包含登录用户数据的Facebook数组。
6 年多之前 回复
dongzhi9032
dongzhi9032 ..我是什么?
6 年多之前 回复
dongmei3869
dongmei3869 我编辑了这个问题。 我得到的错误是我从Facebook收到的是一个数组,而不是一个字符串。
6 年多之前 回复
dongpeixiong5943
dongpeixiong5943 $ json ='[{“id”:“108124505876479”,“name”:“Wakeboarding”},{“id”:“112003352149145”,“name”:“Bouldering”},{“id”:“110008522357035”, “名称”: “手球”}]'; $ json = json_decode($ json,true); foreach($ json as $ value){$ sports [] = $ value [“name”]; } $ sports = serialize($ sports);
6 年多之前 回复
douyu3145
douyu3145 现在这是返回的内容:s:134:“{”id“:”108124505876479“,”name“:”Wakeboarding“},{”id“:”112003352149145“,”name“:”Bouldering“},{” ID “:” 110008522357035" , “名”: “手球”}“; 有没有办法只保存运动?
6 年多之前 回复



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

</ div>

展开原文

原文

If var_dump(json_decode($json)) returns what you'd expect just save $json directly into the database.

duanmu2013
duanmu2013 它周围应该有方括号...尝试将其复制到jsoneditoronline.org也使用var_dump(json_decode($ json,true))将其转换为关联数组。
6 年多之前 回复
dongtaogu8510
dongtaogu8510 我想保存所有运动的一串。
6 年多之前 回复
doumei4964
doumei4964 问题是我的代码返回NULL。
6 年多之前 回复



  $ json1 ='{“id”:“108124505876479”,“name”:“Wakeboarding”},{“id  “:”112003352149145“,”name“:”Bouldering“},{”id“:”110008522357035“,”name“:”Handball“}'; 
$ json2 ='[{”id“:”108124505876479“, “名称”: “水上滑板”},{ “ID”: “112003352149145”, “名称”: “抱石”},{ “ID”: “110008522357035”, “名称”: “手球”}]';
\ nvar_dump(json_decode($ json1,true));
var_dump(json_decode($ json2,true));
</ code> </ pre>

注意差异</ p>
< / DIV>

展开原文

原文

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

watch the difference



  $ string = mysql_real_escape_string($ json); 
</ code> </ pre>
</ div>

展开原文

原文

$string=mysql_real_escape_string($json);

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问