2012-11-01 16 views
5

Zacząłem używać PDO ostatnio, wcześniej używałem tylko mysql .. Teraz próbuję uzyskać wszystkie dane z bazy danych.PDO pobiera dane z bazy danych

$getUsers = $DBH->prepare("SELECT * FROM users ORDER BY id ASC"); 
$getUsers->fetchAll(); 
if(count($getUsers) > 0){ 
    while($user = $getUsers->fetch()){ 
     echo $user['username']."<br/>"; 
    } 
}else{ 
    error('No users.'); 
} 

Ale nie wykazując żadnych użytkowników, tylko pustą stronę ..

+0

Co jest 'błąd (...)'? Upewnij się, że raportowanie błędów jest włączone. – Neal

Odpowiedz

14

Sposób PDOfetchAll() zwraca tablicę/result-set, który należy przypisać do zmiennej, a następnie użyć/iterację że zmienna:

$users = $getUsers->fetchAll(); 
foreach ($users as $user) { 
    echo $user['username'] . '<br />'; 
} 

UPDATE (brakuje execute())
Ponadto, wydaje się, że nie wzywają t on execute() metoda, która musi się zdarzyć po przygotować oświadczenie ale przed faktycznie pobrać dane:

$getUsers = $DBH->prepare("SELECT * FROM users ORDER BY id ASC"); 
$getUsers->execute(); 
$users = $getUsers->fetchAll(); 
... 
+0

To nie działa. Pusta strona, bez błędów. – chizijs

+0

@ user1791971 Jeśli użyjesz 'var_dump ($ users);', po 'fetchAll()', co wyświetla? – newfurniturey

+0

czy masz błąd sprawdzania i wyświetlania: dodaj 'error_reporting (E_ALL); ini_set ('display_errors', '1'); 'do początku skryptu –

2
So simple 
follow this step 
$sql = $dbh->prepare("SELECT * FROM users ORDER BY id ASC"); 
$sql->execute(); 
while($result = $sql->fetch(PDO::FETCH_ASSOC)){ 
?> 
<tr> 
<td><?php echo $result['field1'];?></td> 
<td><?php echo $result['field2'];?></td> 

</tr> 
<?php } ?> 
Powiązane problemy