显示错误,如果$ _GET [“东西”]没有结果

问题描述:

各地的查询字符串等升技这样的IM搞乱,但是我想,如果没有从这个代码结果显示错误:

else { 
      if (isset($_GET['Category'])) { 
      $category = $_GET['Category']; 
      $sql = "SELECT * FROM Posts WHERE Category='$category'"; 
      $stmt = $conn->prepare($sql); 
      $stmt->execute(array(':category'=>$category)); 
      while($cat = $stmt->fetch(PDO::FETCH_ASSOC)) { 
       ?> 

       <div class="post_body"> 
       <div class="post_header"> 
        <h2><?php echo "$cat[Title]";?></h2> 
       </div> 
       <?php echo "$cat[Post]";?> 
       <a class="read-more" href="?ID=<?php echo "$cat[ID]";?>#lamna_kommentar">Lämna en kommentar</a> 
       <hr> 
       <div class="post_footer"> 
        <span class="left_span"> 
        <strong>Av: </strong><?php echo "$cat[Author]";?> 
        <strong>Kategori: </strong><?php echo "$cat[Category]";?> 
        </span> 
        <span class="right_span"> 
        <strong>Datum: </strong><?php echo date_format(new DateTime($cat['Date']), 'd M Y, H:i');?> 
        <strong>Inlägg: #</strong><?php echo "$cat[ID]";?> 
        </span> 
       </div> 
       </div> 
       <?php 
      } 
      } 

,因为它现在工作此链接显示a class="read-more" href="?ID=<?php echo "$cat[ID]";?>#lamna_kommentar">Lämna en kommentar</a>但没有其他没有结果时。

我真的不知道这个,可能是简单的东西,任何指导将不胜感激。

+1

你不必在你的查询字符串名为“类别”什么 –

+0

** WARNING **:当使用PDO,你应该使用方法制得。语句](http://php.net/manual/en/pdo.prepared-statements.php)与占位符值并提供任何用户数据作为单独的参数。在此代码中,您可能会遇到严重的[SQL注入漏洞](http://bobby-tables.com/)。切勿使用字符串插值或连接,而应使用[准备语句](http://php.net/manual/en/pdo.prepared-statements.php),并且绝对不要将'$ _POST'或'$ _GET'数据直接放入您的查询。有关此问题和其他问题的指导,请参阅[PHP正确方法](http://www.phptherightway.com/)。 – tadman

+0

@tadman是啊谢谢,不是一个生产网站或如此atm所以我真的很困扰 –

您可以测试所返回的行数:

if ($stmt->rowCount() == 0) { 
    // display error 
} else { 
    while ($cat = $stmt->fetch(PDO::FETCH_ASSOC)) { 
     ... 
    } 
} 
+0

如果你使用rowCount代替它的作品,谢谢! :) –

+0

哎呀,混淆了PDO和mysqli,对不起,关于 – Barmar

+0

不用担心,再次感谢:) –