-1

我正在学习如何在教程的帮助下使用 Facebook 登录,运行得最多,但数据没有输入到数据库中。

到目前为止,这里的代码可以正常工作

<?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">';
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>Hometown: </b>'.$userdata['hometown']['name'];
echo "<br/>";
echo  '<b>Bio :</b>'.$userdata['bio'];
echo "<br/>";
echo  '<b>Relationship Status: </b>'.$userdata['relationship_status'];
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'];
echo "$add = mysql_query('insert INSERT INTO users(`facebook_id`, `name`, `email`, `gender`, `birthday`, `location`, `hometown`, `bio`, `relationship`, `timezone`, `access_token`) 
VALUES ('$facebook_id','$name','$email','$gender','$birthday','$location','$hometown','$bio','$relationship','$timezone','$access_token')</span>";

echo "<br/>";

 echo '<a href="'.$logoutUrl.'">Logout Facebook</a>';
 }
 else
 {
  header("Location: fblogin.php");
 }
 ?>

显然做错了什么。那么有谁知道任何可以帮助我解决这个问题的教程?

谢谢!

4

2 回答 2

0

您的查询中的错误

echo "$add = mysql_query('insert INSERT INTO users(`facebook_id`, `name`, `email`, `gender`, `birthday`, `location`, `hometown`, `bio`, `relationship`, `timezone`, `access_token`) VALUES ('$facebook_id','$name','$email','$gender','$birthday','$location','$hometown','$bio','$relationship','$timezone','$access_token')</span>";

应该

$add = mysql_query("INSERT INTO users(`facebook_id`, `name`, `email`, `gender`, `birthday`, `location`, `hometown`, `bio`, `relationship`, `timezone`, `access_token`) VALUES ('$facebook_id','$name','$email','$gender','$birthday','$location','$hometown','$bio','$relationship','$timezone','$access_token')");

并尝试使用PDOormysqli代替mysql.

于 2012-10-03T07:12:09.827 回答
0

你不插入任何东西。

做就是了:

$add = mysql_query("INSERT INTO users(`facebook_id`, `name`, `email`, `gender`, `birthday`, `location`, `hometown`, `bio`, `relationship`, `timezone`, `access_token`) 
VALUES ('$facebook_id','$name','$email','$gender','$birthday','$location','$hometown','$bio','$relationship','$timezone','$access_token')");

没有那个echo

作为旁注,我看到您仍在使用函数,如果您刚刚开始,mysql_*您可以移至函数已弃用。这是一个很好的教程PDOmysql_*

以下是使用 PDO 完成此操作的方法:

$db = new PDO('mysql:host=localhost;dbname=testdb;charset=UTF-8', 'username', 'password', array(PDO::ATTR_EMULATE_PREPARES => false, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));

$stmt = $db->prepare("INSERT INTO users(`facebook_id`, `name`, `email`, `gender`, `birthday`, `location`, `hometown`, `bio`, `relationship`, `timezone`, `access_token`) 
    VALUES (:facebook_id,:name,:email,:gender,:birthday,:location,:hometown,:bio,:relationship,:timezone,:access_token)");
$stmt->execute(array(':facebook_id' => $facebook_id, ':name' => $name, ':email' => $email, ':gender' => $gender, ':birthday' => $birthday, ':location' => $location, ':hometown' => $hometown, ':bio' => $bio, ':relationship' => $relationship, ':timezone' => $timezone, ':access_token' => $access_token));
于 2012-10-03T07:06:14.090 回答