PHP - 在PHP会话中存储来自MYSQL数据库的帐户ID

时间:2013-03-16 11:54:53

标签: php mysql database session username

$id = mysql_query("SELECT id FROM account WHERE username='".$username."' LIMIT 1") or die(mysql_error);

$_SESSION['id'] = $id ;

echo ("ID: ".$_SESSION["id"]."");

输出“ID:0”,而数据库中帐号的ID应为1。请帮忙!

2 个答案:

答案 0 :(得分:2)

mysql_query返回资源。返回的结果资源应该传递给mysql_fetch_array(),以及用于处理结果表的其他函数,以访问返回的数据。

$result = mysql_query("SELECT id FROM account WHERE username='".$username."' LIMIT 1") or die(mysql_error); 
while ($row = mysql_fetch_assoc($result)) 
{
    $_SESSION['id'] = $row['id'] ;
}
echo ("ID: ".$_SESSION["id"]."");

作为旁注,如果变量的值( s )来自外部,则查询易受SQL Injection攻击。请查看下面的文章,了解如何防止它。通过使用PreparedStatements,您可以摆脱在值周围使用单引号。

答案 1 :(得分:2)

试试这个

$id = mysql_query("SELECT id FROM account WHERE username='".$username."' LIMIT 1") or die(mysql_error);

while($myid = mysql_fetch_array($id)){

$_SESSION['id'] = $myid ;

}

echo ("ID: ".$_SESSION["id"]."");