0

現在のコード:

<?php

session_start();

if ($_SESSION['username']) {
    echo "Signed in as " . "$_SESSION[username]" . "<br />" . "<a href='logout.php'>Log         out</a>";

    //Get user info.

    $results = mysql_query("SELECT * FROM users WHERE username=$_SESSION[username]");
    while($row = mysql_fetch_array($results) {
        $db_username = $row['username'];
        echo $db_username;
    }
}    

else {
    echo "Log in";
}

?>

残念ながら、MySQL が取得するはずの値を返すときにエラーが発生します。理由はありますか?

4

2 に答える 2

0

クエリで値を一重引用符で囲むのを忘れました

mysql_query("SELECT * FROM users WHERE username='{$_SESSION[username]}'");
                                                ^^                   ^^ 

mysql_*また、非推奨の関数の使用をやめ、 MySQLiORを使用しますPDO

于 2013-06-16T06:24:55.143 に答える
0

一重引用符または中括弧で囲まれていない PHP 変数が含まれているため、クエリは間違っています。クエリは次のように書き直すことができます。

ブレース付き:

$results = mysql_query("SELECT * FROM users WHERE username={$_SESSION[username]}");`

または一重引用符で:

$results = mysql_query("SELECT * FROM users WHERE username='$_SESSION[username]'");
于 2013-06-16T07:31:04.870 に答える