我遇到了一个小问题,但我尝试将旧脚本从MYSQL转换为PDO。由于某种原因,我无法获取多个结果。 [我的代码很可能是错误的]
原版的
<?php
$site_pages = mysql_query("SELECT * FROM pages WHERE show_nav = '1' ORDER BY `display_nav` ASC");
if(mysql_num_rows($site_pages) == 0){
echo '';
}else{
while($n = mysql_fetch_array($site_pages)){
$title = $n["title"];
$shortname = $n["shortname"];
echo '<li><a href="?p='.$shortname.'" class="nav"> '.$title.' </a></li>
';
}
}
?>
我的尝试:
<?php
$STH - $DBH -> prepare( "SELECT * FROM pages WHERE show_nav = '1' ORDER BY `display_nav` ASC" );
$STH -> execute();
$result = $STH -> fetch();
echo $result ["title"];
?>
我已经研究了PDO提取,但是无法使其正常工作。
最佳答案
我建议您使用PDOStatement::fetchAll
。
因此,您可以通过以下方式使用它:
<?php
$STH = $DBH -> prepare( "SELECT * FROM pages WHERE show_nav = '1' ORDER BY `display_nav` ASC" );
$STH -> execute();
$result = $STH -> fetchAll(PDO::FETCH_ASSOC);
echo $result [0] ["title"];
?>