mySQL没有为PHP变量赋值名称

时间:2014-04-15 15:11:35

标签: php mysql sql

我正在做一个项目,我应该创建一个人们可以注册并登录的网站。我正在尝试做的事情,它会在角落里说“登录为......” / p>

这是代码的一部分,用于在用户登录时将变量名称分配给数据库中的名称值。

    $first = mysql_query("SELECT FirstName FROM students WHERE studentID = '$user' AND password = '$pass'");
    $firstname = mysql_fetch_array($first);
    $_SESSION['name'] = $firstname;

这是网站上显示名称

的代码
<?php 
if(isset($_SESSION['name']))
{
echo '<li class="disabled"><a href="#" disabled>Signed in as ' . $_SESSION['name'] . '</a></li>';
} 
?>

但是当网站实际运行时,空间是空白的。我知道变量已设置,因为我用一些随机字符串替换了$ _SESSION ['name']并且它回应得很好。我还运行了SQL查询,它给了我这个名字。我的代码中缺少什么?

2 个答案:

答案 0 :(得分:2)

顾名思义,

mysql_fetch_array()返回一个值数组。不只是您选择的一列。

$row = mysql_fetch_array($first);
$_SESSION['name'] = $row['FirstName'];

答案 1 :(得分:0)

尝试替换

mysql_fetch_array($first);

mysql_fetch_array($first)['FirstName'];

还要避免使用mysql_ *函数。他们被贬低了。 使用mysqli_ *代替或PDO