2012-12-18 111 views
-1

我在我的PHP程序中写下面的代码,但是mysql没有返回任何行。请检查并帮助找出以下代码中的错误。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

感谢, 塔哈

+0

的mysql_query()需要两个参数,第二个是一个link_identifier。更可能的是,它返回FALSE(这不是有效的资源),因为你可能没有使用mysql_connect()连接到mysql数据库。检查mysql_query()的返回值是否为FALSE,并查看mysql_error()。另外,确保你在某处连接mysql_connect()。 – 2012-12-18 19:09:58

回答

2

你需要执行查询,你不能引用字段/表名这样的:

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

应该是:

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

注意,反引号只在MySQL和表保留字必要和带空格的字段名称。

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

+0

我已经更新了我的程序,但它仍给我同样的错误信息。警告:mysql_num_rows()预计参数1是资源,布尔在F中给出:\ XAMPP \ htdocs中\ EMAIL_ADDRESS \的welcome.php上线20 无效Query' –

+1

@Taha Kirmani你实际上已经连接到数据库 – jeroen

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

if您正在使用这些MySQL的功能,而不是切换到PDO,不要忘了关闭后您的数据库连接:

mysql_close($con); 

如果可能的话,我会强烈建议切换到使用PDO来代替,这里是一些有用的信息,如果你决定去那个方向,并设置你的Web服务器上:

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

1

你必须执行查询:

$query_run2= mysql_query($query2); 
+0

该查询还有另一个潜在的问题:''前有一个空格。$ _ SESSION ['user_id']。''“' – beerwin

0

尝试这些:

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

没有变化结果:(我已经更新了上面的新代码 –

+0

首先检查你的数据库连接。如果没问题,那么检查会话值是否为空。 –