Search code examples
phpmysqlmysql-num-rows

mysql is not returning any Row


I am writing the following code in my PHP program, but mysql is not returning any row. Kindly check and help to find out the mistakes in the following code.

UPDATED CODE

    <?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'];
    }

?>

It is giving me the following Output.

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

Thanks, Taha


Solution

  • You need to execute your query and you cannot quote field / table names like that:

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

    should be:

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

    Note that the backticks are only necessary for reserved words in mysql and table and field names with spaces.

    You should also not be using the deprecated mysql_* functions but PDO or mysqli instead.