2012-11-05 49 views
0
$result = mysql_query('SELECT * FROM phpfox_education_question where subject_id = 2 and ques_id =1'); 
var_dump($result); 
//var_dump result is :- "resource(64) of type (mysql result)" in localhost and web host,but 
while($row = mysql_fetch_array($result)) 
{ 
    var_dump($row); //**NOTHING DISPLAYED in web host server but in localhost** 
} 
+0

在web服務器的數據庫表是好嗎?數據存在? –

+0

連接細節是否相同? –

+0

你的mysql憑證是一樣的嗎? Web服務器上的表是否相同? – George

回答

0

試試這個:

$query = "SELECT * FROM phpfox_education_question WHERE subject_id = '2' AND ques_id = '1'"; 
$result = mysql_query($query) or die(mysql_error()); // <--- added this 
echo "Results: ".mysql_num_rows($result)."<br />"; // <--- added this to output result count 
while($row = mysql_fetch_array($result)) 
{ 
    print_r($row); //**NOTHING DISPLAYED in web host server but in localhost** 
} 

這是用來貶值代碼順便說一句

+0

查詢正在運行,但結果爲int(0)。我確信這個查詢有一些數據。我已經直接在phpmyadmin運行這個查詢,並找到數據.....請幫助... –

+0

WHERE子句不工作........但直接在phpmyadmin工作 –

+0

我已經讚揚上面的代碼。嘗試插入數據庫可能會付出代價,也許您的數據庫用戶可能沒有讀訪問權限。只是一個想法 – Chris

0

嘗試添加此:

var_dump(mysql_num_rows($result)); 

要查看是否有任何行被提取,如果沒有,那就是你的答案。
順便說一句,在PDO此代碼如下所示:

$db = new PDO('mysql:dbname=default_db_name;host=127.0.0.1',$user,$pass); 
//use prepared statmenets 
$stmt = $db->prepare('SELECT * FROM your_db.phpfox_education_question WHERE subject_id = :subject_id AND ques_id = :ques_id'); 
//pass binds when executing the stmt 
$stmt->execute(array(':subject_id' => 2, ':ques_id' => 1)); 
//number of rows found: 
var_dump($stmt->rowCount()); 
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) 
{//fetch rows as assoc array 
    var_dump($row); 
} 

注意,這是一個基本的例子,還有很多更可以用PDO做

更新:
爲了獲得更多的調試信息,試試這個:

try 
{ 
    $db = new PDO();//connect, pass correct data here 
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);//cause PDO to throw PDOExceptions on error 
    $stmt = $db->prepare('SELECT * FROM your_db.phpfox_education_question WHERE subject_id = :subject_id AND ques_id = :ques_id'); 
    $stmt->execute(array(':subject_id' => 1, ':ques_id' => 2)); 
    var_dump($stmt->rowCount()); 
    while($row = $stmt->fetch(PDO::FETCH_ASSOC)) 
    { 
     var_dump($row); 
    } 
} 
catch(PDOException $e) 
{ 
    echo $e->getMessage(); 
    $db = null; 
    return; 
} 
echo 'No problems with query<br/>'; 
$db = null;//disconnecto 

確保沒有錯誤被拋出,如果有,檢查郵件,發現了什麼錯誤,並修復它。如果你找不到解決問題的方法,當然我們會幫助你。

+0

var_dump(mysql_num_rows($ result));返回int(0)。但是,如果我直接在數據庫中運行查詢,它正在工作,並且它也找到了數據。爲什麼不在我的應用程序? –

+0

嗨,「選擇*從phpfox_education_question」正在工作,但where子句「where subject_id = 2和ques_id = 1」不工作... –

+0

它是如何工作的 - 是否錯誤 – Chris