我能够以json格式从facebook获取数据,但无法在数据库中插入。

时间:2014-01-10 18:17:53

标签: php mysql json facebook

代码工作正常,但我无法在mysql数据库中插入用户数据。

<?php

$facebookAppAuthUrl = 'https://graph.facebook.com/oauth/access_token';
$facebookGraphUrl = 'https://graph.facebook.com';
$facebookClientId = ''; // Put your App Id here.
$facebookRedirectUrl = ''; // Redirect url same as passed before.
$facebookAppSecret = ""; // Put your App Secret here.

$code = $_GET['code'];

$url =$facebookAppAuthUrl."?client_id=".$facebookClientId
."&redirect_uri=".$facebookRedirectUrl
."&client_secret=".$facebookAppSecret
."&code=".$code;

$output = urlResponse($url);
$var = strtok($output, "&");
$ApCode = strtok($var, "=");
$ApCode = strtok("=");

//  This $ApCode will be used as a token to get user info from facebook.

$url = $facebookGraphUrl.'/me';
echo '<pre>';
$resposeObj = json_decode(processUrl($url,$ApCode));
var_dump($resposeObj);
echo '<pre>';

function urlResponse($url)
{
$ch = curl_init();
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch); 
curl_close($ch);
return $response;

}
function processUrl($url,$apCode){ 
if(stripos($url,'?')>0)
       $url = $url.'&access_token='.$apCode;
else
       $url = $url.'?access_token='.$apCode;

return urlResponse($url);
}
?>

我猜以下代码是错误的。我以JSON格式从facebook获取用户数据,但遗憾的是我无法使用PHP在mysql中添加用户数据。我们如何使用php在mysql中插入json格式数据?

<?php
require('../conn.php');
$name = $url['id']['name'];
$first_name = $url['id']['first_name'];
$last_name = $url['id']['last_name'];
$hometown = $url['id']['hometown'];

{
$sql="insert into user values('','$name','$first_name','$last_name','$hometown')";
mysql_query($sql);
}

?>

<script type="text/javascript">window.location="../index.php"</script>

<html>
<head>
<title></title>
</head>
<body>
</body>
</html>

2 个答案:

答案 0 :(得分:0)

这里需要做的是,首先需要将JSON返回的数据转换为数组

$response = json_decode($response,true);

现在有了这些数据,您就可以使用print_r($ response)并查看数组的外观并使用查询中的数据。

希望这有帮助

答案 1 :(得分:0)

所以,显然我不能在没有50个代表的情况下发表评论 - 所以无论如何。我怀疑你的插入语句是关闭的。你为什么一开始就有一个空字符串?我希望这不是你的主要关键领域。如果我是你,我会指定我的字段并将auto-inc字段从中删除,以便它可以自动增加:)

$sql="insert into user (`name`,`firstName`,`LastName`,`homeTown`) values('$name','$first_name','$last_name','$hometown')";