2011-06-05 77 views
-1

這是我的 「人」 表:MYSQL + PHP問題

eid sex email 
17 Female [email protected] 

這是我的PHP頁面:

<?php 
$loginquery = mysql_query('SELECT eid, email, sex FROM person WHERE email = "'[email protected]'" ;') or die("Query fail: " . mysql_error()); 
$userlogin = mysql_fetch_array($loginquery); 

if($userlogin){ 
$_SESSION['eid']= $userlogin['eid']; 
$_SESSION['email']= $userlogin['email']; 
$_SESSION['sex']= $userlogin['sex']; 
} 


echo "user ".$_SESSION['eid']." ".$_SESSION['email']." ".$_SESSION['sex']; 
?> 

這是輸出:

用戶[email protected]

爲什麼$_SESSION['eid']未打印?

+0

使用'''作爲PHP的字符串分隔符'''內的MySQL字符串分隔符時,應該有語法錯誤。 – alex 2011-06-05 11:21:12

+0

我相信這是一個錯字 – dynamic 2011-06-05 11:21:49

+0

這是奇怪的,像查詢失敗,因此'if'語句不滿意,然後$ _SESSION變量保持其舊值(我不知道$ _SESSION如何工作我'害怕),也許你以前在查詢中沒有'eid'?但我擔心我剛剛說的可能是廢話:) – marnir 2011-06-05 11:23:21

回答

1

功能我看到至少有2條蟲子

session_start();不叫,它應該。

查詢是怪異:

$loginquery = mysql_query('SELECT eid, email, sex FROM person WHERE email = "'[email protected]'" ;') or die("Query fail: " . mysql_error()); 

我不知道爲什麼這不會產生一個錯誤,但你的字符串是不精心打造。嘗試類似於

$loginquery = mysql_query("SELECT eid, email, sex FROM person WHERE email = '[email protected]';") or die("Query fail: " . mysql_error()); 
0

我想這和它的作品:
sqlErr()是我自己的錯誤處理

[email protected]_connect("localhost","root","") or sqlErr(); 
@mysql_select_db("test",$dbcon) or sqlErr(); 

$loginquery = mysql_query("SELECT * FROM person WHERE email = '[email protected]' ;") or die("Query fail: " . mysql_error()); 
$userlogin = mysql_fetch_array($loginquery,MYSQL_ASSOC); 

if($userlogin){ 
$_SESSION['eid']= $userlogin['eid']; 
$_SESSION['email']= $userlogin['email']; 
$_SESSION['sex']= $userlogin['sex']; 
} 


echo "user ".$_SESSION['eid']." ".$_SESSION['email']." ".$_SESSION['sex'];