我遇到了一个小问题,但我尝试将旧脚本从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"];

?>

08-06 09:09