-3
$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 にする必要があります。助けてください!

4

2 に答える 2

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"]."");

補足として、変数のSQL Injection値が外部から取得された場合、クエリは脆弱です。予防方法については、以下の記事をご覧ください。を使用すると、値を一重引用符で囲む必要がなくなります。PreparedStatements

于 2013-03-16T11:57:21.713 に答える
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"]."");
于 2013-03-16T11:57:33.987 に答える