2014-06-06 51 views
1

我在嘗試將SQL語句轉換爲PDO。用PHP轉換爲PDO

我似乎無法弄清楚這一點。

這裏是sql語句。

<h3>Recent Post</h3> 
    <?php 
    $sql = mysql_query("SELECT * FROM blogData ORDER BY id DESC"); 
    while($row = mysql_fetch_array($sql)){ 
    $title = $row['title']; 
    $content = $row['content']; 
    $category = $row['category']; 
    ?> 
    <div class="features"> 
     <div class="box"><img src="Developer/common-files/icons/[email protected]" width="100" height="100" alt="">  
      <h6><?php echo $category; ?> - <?php echo $title; ?></h6> 
      <p><?php echo $content; ?></p> 
     </div> 
    </div> 
    <?php 
    } 
    ?> 
</div> 

從我讀我的印象是,這將工作

PDO聲明

<h3>Recent Post</h3> 
    <?php 
     $stmt = $con->query('SELECT * FROM blogData ORDER BY id DESC'); 
      while($row = $stmt->fetch(PDO::FETCH_ASSOC)) { 
     } 
    ?> 
    <div class="features"> 
     <div class="box"><img src="Developer/common-files/icons/[email protected]" width="100" height="100" alt="Wuno Inc.">  
      <h6><?php echo $row['category']; ?> - <?php echo $row['title']; ?></h6> 
      <p><?php echo $row['content']; ?></p> 
     </div> 
    </div> 
    </div> 

在我的網頁我沒有得到任何錯誤,但沒有信息填充。

+0

你的代碼已經在'echo $ row'之前執行了while循環,所以沒有任何內容會顯示,因爲'$ row'爲null。 – Brobin

回答

2

您即將結束您的while聲明,並附帶一個零散的右括號}。將括號移到輸出下方,就像您在第一個代碼示例中一樣。

另外,不要忘記在HTML上下文中使用的任何數據周圍使用htmlspecialchars(),以確保您生成有效的HTML並防止注入腳本,而不是。

+0

用於回答這麼快的TY。我是一個混球,我編輯了這個問題。長話短說。我發佈它只顯示一個帖子。我需要它從數據庫中顯示所有帖子。我爲每個權利都做了這個?我如何添加這個? – wuno

+0

@NichoDiaz不,你不需要'foreach'。如果你只是移動右括號,你的工作將會很順利... – Brad

+0

好的,謝謝一位男士。只要它能讓我接受,我就接受。哈哈,我現在覺得很愚蠢。 – wuno