以下等效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
的正确记录。任何想法或建议?
答案 0 :(得分: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 ?>
如果您不喜欢这些花哨的浓密字段名称 - 请勿在数据库中使用