2013-11-07 2 views
0

Я пытаюсь преобразовать свой старый скрипт из MYSQL в PDO, хотя натолкнулся на небольшую проблему. По какой-то причине я не могу получить несколько результатов. [Скорее всего, мой код является неправильным]Передача из 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 выборки, но не смог получить эту работу.

+0

Ну, какие проблемы вы облицовочные после внесения этих изменений? – Lion

+0

Вы также изменили строки 'mysql_connect' и' mysql_select_db'? – mithunsatheesh

+0

Да, но я действительно исправил проблему! @Lion имел вопрос об этом, просто делая страницу пустой белой. – user2963430

ответ

0

Я бы зарекомендовал вас, используя 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"]; 

?> 
0

Или, может быть, вы ищете это:

$sth = $dbh->prepare('SELECT * FROM pages WHERE show_nav="1" ORDER BY display_nav ASC'); 
$sth->execute(); 

while ($row = $sth->fetch(PDO::FETCH_ASSOC)) { 
    echo $row['title']; 
} 
Смежные вопросы