2012-12-18 113 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

首先檢查你的數據庫連接。如果沒問題,那麼檢查會話值是否爲空。 –