2013-04-12 79 views
1

以下等效的PDO等效於什麼?在Mysql中PDO的等效查詢

$i=0; 
while ($i < $num_articles){ 
$title=mysql_result($sql_result_article,$i,"Article_Title"); 
$id =mysql_result($sql_result_article,$i,"Article_Id"); 
$i++; 
} 

我試過用:

$title = $select_spec_article_stmt->fetchColumn(0); 
$nc=$select_spec_article_stmt->fetchColumn(1); 

但我仍然面臨一個問題,因爲它沒有顯示正確的記錄。當我在PDO中註釋$title時,它會顯示$nc的正確記錄。任何想法或建議?

回答

3

mysql_result一直是處理mysql數據的最醜陋的方式。請不要把這個方法帶入PDO這個勇敢的新世界。

即使使用mysql ext,您也可以使用數組。所以你必須使用PDO。
你不需要既不mysql_result也不num_articles.

就先得到你的數據:

$data = $stmt->fetchAll(); 

現在在foreach循環中,你可以解決每個變量作爲數組成員

<table> 
<? foreach ($data as $row): ?> 
    <tr> 
    <td> 
     <a href="news.php?<?=$row['Article_Id']?>"> 
     <?=htmlspecialchars($row['Article_Title'])?> 
     </a> 
    </td> 
    </tr> 
<? endforeach ?> 

或者,如果要使用標量變量,請使用extract():

<table> 
<? foreach ($data as $row): extract($row); ?> 
    <tr> 
    <td> 
     <a href="news.php?<?=$Article_Id?>"> 
     <?=htmlspecialchars($Article_Title)?> 
     </a> 
    </td> 
    </tr> 
<? endforeach ?> 

如果你不喜歡這些花哨的濃密的字段名稱 - 不要在數據庫中使用