2010-01-19 87 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