无法将Facebook个人资料图片存储在sql数据库中

时间:2012-07-29 19:28:14

标签: php sql facebook facebook-graph-api

如您所见,下面的代码检索并显示Facebook个人资料中的所有必需信息。 访问令牌: 用户身份: 姓名:Aneesh 名字: 姓: 电子邮件: 性别: 生日: 地点:N 时区:

但是我无法将个人资料图片存储在sql数据库中?

<?php
require 'lib/db.php';
require 'lib/facebook.php';
require 'lib/fbconfig.php';
session_start();
$facebook=$_SESSION['facebook'];
$userdata=$_SESSION['userdata'];
$logoutUrl=$_SESSION['logout'];
$access_token_title='fb_'.$facebook_appid.'_access_token';
$access_token=$facebook[$access_token_title];


if(!empty($userdata))
{
echo '<h1>Login User Details</h1>';
echo '<img src="https://graph.facebook.com/'.$userdata['id'].'/picture">';

目前上面的代码显示图像......但如何存储是问题所在 我使用BLOB显示错误

echo "<br/>";
echo '<b>Access Token: </b>'.$access_token;
echo "<br/>";
echo '<b>User ID: </b>'.$userdata['id'];
echo "<br/>";
echo  '<b>Name: </b>'.$userdata['name'];
echo "<br/>";
echo  '<b>First Name: </b>'.$userdata['first_name'];
echo "<br/>";
echo  '<b>Last Name: </b>'.$userdata['last_name'];
echo "<br/>";
echo  '<b>Email: </b>'.$userdata['email'];
echo "<br/>";
echo  '<b>Gender: </b>'.$userdata['gender'];
echo "<br/>";
echo  '<b>Birthday: </b>'.$userdata['birthday'];
echo "<br/>";
echo  '<b>Location: </b>'.$userdata['location']['name'];
echo "<br/>";
echo  '<b>Time Zone: </b>'.$userdata['timezone'];
echo "<br/>";
echo "<br/>";

$facebook_id=$userdata['id'];
$name=$userdata['name'];
$email=$userdata['email'];
$gender=$userdata['gender'];
$birthday=$userdata['birthday'];
$location=mysql_real_escape_string($userdata['location']['name']);
$hometown=mysql_real_escape_string($userdata['hometown']['name']);
$bio=mysql_real_escape_string($userdata['bio']);
$relationship=$userdata['relationship_status'];
$timezone=$userdata['timezone'];


$inserty = "INSERT INTO `users` (`facebook_id`, `name`, `email`, `gender`, `birthday`, `location`,`timezone`, `access_token`,`??????`) 
VALUES ('$facebook_id','$name','$email','$gender','$birthday','$location','$timezone','$access_token',`?????`)";
mysql_query($inserty, $connection);

?????我的意思是图像列

echo "<br/>";

 echo '<a href="'.$logoutUrl.'">Logout Facebook</a>';
 echo '<a href="http://www.xxxxxx.co.uk/Mosaic/logout.php">Logout Facebook</a>';
 include('status_update.php');
 }
 else
 {
  header("Location: fblogin.php");
 }

 ?>

1 个答案:

答案 0 :(得分:0)

听起来您正在尝试存储图像本身的二进制数据,而不是图像的URL。理想情况下,您不应该存储图像/ URL,因为它在Facebook上不断变化。根据用户的不同,它可能每天都在变化!您可以使用API​​或Facebook ID轻松获取当前图像。

如果必须存储它,则应将URL存储到Facebook版本而不是图像本身。

如果您仍想将图像存储在数据库中,请尝试改为使用BINARY类型。