$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。請幫忙!PHP - 在PHP會話中存儲來自MYSQL數據庫的賬戶ID
$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。請幫忙!PHP - 在PHP會話中存儲來自MYSQL數據庫的賬戶ID
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"]."");
作爲旁註,查詢是用SQL Injection
脆弱,如果變量的值(小號)從外部來了。請看下面的文章,瞭解如何防止它。通過使用PreparedStatements
你可以擺脫使用單引號圍繞值。
試試這個
$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"]."");
看看什麼'的var_dump($ ID)'你myswl_query後輸出,並且應該給你一個提示,到哪裏去錯誤。 – Stu 2013-03-16 11:56:28
$ id將返回資源值,如#7資源。將它保存在會話中並不是一件好事! – 2013-03-16 11:58:08