mysql 不返回任何行



我正在我的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:xampphtdocsEmail_addresswelcome.php on line 20 Invalid Query

谢谢Taha

您需要执行查询,并且不能像这样引用字段/表名称:

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

应该是:

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

请注意,反引号仅适用于 mysql 中的保留字以及带空格的表和字段名称。

您也不应该使用已弃用的mysql_*函数,而应该使用 PDO 或 mysqli。

您必须执行查询:

$query_run2= mysql_query($query2);
您需要

先执行查询,然后才能获取行:

$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);

如果您使用这些 MySQL 函数,而不是切换到 PDO,请不要忘记在之后关闭数据库连接:

mysql_close($con);

如果可能的话,我强烈建议改用PDO,如果您决定朝这个方向前进并在Web服务器上进行设置,这里有一些有用的信息:

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

试试这些:

$query= "SELECT * FROM `email` where `id` =' ".$_SESSION['user_id']. "'" ;
$rs = mysql_query($query);

相关内容

  • 没有找到相关文章

最新更新