-1

PHP プログラムで次のコードを書いていますが、mysql は行を返しません。次のコードを確認して、間違いを見つけてください。

更新されたコード

    <?php


    //$query2= "SELECT * FROM `email` where `id` ='".$_SESSION['user_id']. "'" ;

        //$query2= "SELECT * FROM `email` where `id` ='".$_SESSION['user_id']. "'" ;
        $query= "SELECT * FROM `email` where `id` =' ".$_SESSION['user_id']. "'" ;

            $query_run2= mysql_query($query);   
            $query_num_rows= mysql_num_rows($query_run2);

                if ($query_num_rows==0) {
                    echo "Invalid Query";

                }
                    else {

                        $query_result = mysql_result ($query_run2, 0, 'name');

                        echo "Welcome" ;

                        echo $_SESSION['user_id'];
    }

?>

それは私に次の出力を与えています。

Log out Warning: mysql_num_rows() expects parameter 1 to be resource, string given in F:\xampp\htdocs\Email_address\welcome.php on line 20 Invalid Query

ありがとう、タハ

4

4 に答える 4

2

クエリを実行する必要があり、そのようなフィールド/テーブル名を引用することはできません:

$query2= "SELECT * FROM 'email' where 'id' ='".$_SESSION['user_id']. "'" ;

次のようにする必要があります。

$query2= "SELECT * FROM `email` where `id` ='".$_SESSION['user_id']. "'" ;

バッククォートは、mysql の予約語と、スペースを含むテーブルおよびフィールド名にのみ必要であることに注意してください。

また、非推奨のmysql_*関数を使用するのではなく、代わりに PDO または mysqli を使用する必要があります。

于 2012-12-18T17:42:54.490 に答える
1

行を取得する前に、クエリを実行する必要があります。

$query_run2 = mysql_query($query2);

クエリを実行する前に、データベースに接続する必要もあります。

$con = mysql_connect(DB_SERVERNAME, DB_USERNAME, DB_PASSWORD); 
$dbLink = mysql_select_db(DB_NAME, $con);

$query_run2 = mysql_query($query2, $dbLink);

PDO に切り替えるのではなく、これらの mysql 関数を使用している場合は、後でデータベース接続を閉じることを忘れないでください。

mysql_close($con);

可能であれば、代わりに PDO を使用するように切り替えることを強くお勧めします。その方向に進み、Web サーバーに設定することにした場合に役立つ情報を次に示します。

http://net.tutsplus.com/tutorials/php/php-database-access-are-you-doing-it-correctly/

于 2012-12-18T17:42:10.357 に答える
1

クエリを実行する必要があります。

$query_run2= mysql_query($query2);
于 2012-12-18T17:42:38.723 に答える
0

これらを試してください:

$query= "SELECT * FROM `email` where `id` =' ".$_SESSION['user_id']. "'" ;
$rs = mysql_query($query);
于 2012-12-18T18:07:50.760 に答える