2010-01-19 99 views
1

以下MySQL查詢僅返回單個行,當它應該返回4.MySQL查詢僅返回一個單列

$query = "SELECT * FROM questions"; 
    $result = mysql_query($query) or die("ERROR: $query.".mysql_error()); 
    // if records are present 
    if (mysql_num_rows($result) > 0) { 
    while ($row = mysql_fetch_object($result)){ 

    // get question ID and title 
     $qid = $row->qid; 
     echo '<div id=ques>'; 
     echo '<h2>'.$row->qtitle .'</h2>'; 
     echo '</div>'; 

     print_r ($row); 

所述的print_r功能顯示此:

stdClass Object ([qtitle] => dummy text here [qid] => 1) 
+1

你應該非常小心你生成你的HTML的方式。如果問題標題來自用戶輸入,則代碼中可能存在XSS或DoS漏洞。 – 2010-01-19 22:09:39

回答

4

mysql_fetch_*()只吸入一次一行。如果沒有看到循環的其餘部分,就不可能知道其他事情是否正在發生。

+0

@Ignacio,while循環不會繼續調用mysql_fetch_object,直到它返回FALSE?我同意該塊可能包含可能會跳出循環的其他代碼。 – 2010-01-19 22:10:15

+0

也看起來像是缺少一些可能導致它打破的關鍵括號,會期望與該代碼解析錯誤雖然.. – suitedupgeek 2010-01-19 22:12:56

+0

這是一個非常愚蠢的問題。這是我的錯誤。我花了$ row變量來獲取答案。謝謝你的幫助。 – amit 2010-01-19 22:15:50

0

您不必關閉括號while -loop和if