$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。请帮忙!
答案 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"]."");