2011-06-05 95 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'];