Mysql+;PHP问题
这是我的“个人”表: 这是我的php页面:Mysql+;PHP问题,php,mysql,Php,Mysql,这是我的“个人”表: 这是我的php页面: <?php $loginquery = mysql_query('SELECT eid, email, sex FROM person WHERE email = "'example@example.com'" ;') or die("Query fail: " . mysql_error() ); $userlogin = mysql_fetch_array($loginquery); if($userlogin){ $_SESSION['e
<?php
$loginquery = mysql_query('SELECT eid, email, sex FROM person WHERE email = "'example@example.com'" ;') 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'];
?>
这是输出:
使用者example@example.com女性
为什么没有打印
$\u会话['eid']
?我尝试了这个方法,效果很好:sqlErr()是我自己的错误处理函数
我至少看到两个bug
session_start()代码>未被调用,它应该被调用
这个问题很奇怪:
$loginquery = mysql_query('SELECT eid, email, sex FROM person WHERE email = "'example@example.com'" ;') or die("Query fail: " . mysql_error() );
我不知道为什么这不会产生错误,但是您的字符串构建得不好。试试像这样的东西
$loginquery = mysql_query("SELECT eid, email, sex FROM person WHERE email = 'example@example.com';") or die("Query fail: " . mysql_error() );
在PHP字符串定界符的
中使用'
作为MySQL字符串定界符时,您应该会出现语法错误。我认为这是一个输入错误,这有点奇怪,比如查询失败,因此if
语句未得到满足,然后$\u会话变量保留其旧值(我不知道$_SESSION是如何工作的,恐怕)也许你以前在查询中没有eid
?但我担心我刚才说的可能是胡说八道:)试试var_dump($_SESSION['eid'),看看它是否包含任何东西var_dump($userlogin)
给你什么?
$loginquery = mysql_query('SELECT eid, email, sex FROM person WHERE email = "'example@example.com'" ;') or die("Query fail: " . mysql_error() );
$loginquery = mysql_query("SELECT eid, email, sex FROM person WHERE email = 'example@example.com';") or die("Query fail: " . mysql_error() );