2012-10-03 22 views
-1

我正在學習如何在教程的幫助下使用Facebook登錄,獲得最多的運行時間,但數據沒有輸入到數據庫。Facebook登錄不會將數據輸入到mysql

這裏是到目前爲止的代碼

<?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"); 
} 
?> 

得到工作顯然做得不對。那麼有沒有人知道有哪些教程能幫助我呢?

謝謝!

+0

'顯然做錯了事'是的,是的,你是。使用'mysql_ *'是錯誤的。並且回顯查詢執行行('$ add = ....')也是錯誤的。哦,不要忘記,你沒有執行的查詢是無效的。 – 2012-10-03 07:06:20

回答

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_*函數,如果你剛開始,你可以移動到PDO作爲mysql_*函數已被棄用。 Here is a nice tutorial

這裏是你如何能做到這一點使用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)); 
+0

「但是,PDO看起來好像比mysql_ *更難'」當大多數人看到兩者在一起的時候會想到的。 xD – 2012-10-03 07:24:38

+0

我不知道你如何看待它更難,我喜歡它:)。藉助PDO,您可以跳過所有這些不需要的變量。 –

+0

是的,我知道。我對它完全沒問題。但是對於大多數新手來說,這句話將會浮現在他們的頭上。 – 2012-10-03 07:30:40

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')"); 

,並嘗試使用PDOmysqli代替mysql