Я начал использовать PDO недавно, раньше я использовал только mysql. Теперь я пытаюсь получить все данные из базы данных.
$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.'); }
Но он не показывает пользователей, просто пустую страницу.
Метод PDO
fetchAll()
возвращает массив / результирующий набор, который вам нужно назначить переменной, а затем использовать / итерации через эту переменную:
$users = $getUsers->fetchAll(); foreach ($users as $user) { echo $user['username'] . '<br />'; }
UPDATE (отсутствует execute()
)
Кроме того, похоже, вы не вызываете метод execute()
который должен произойти после подготовки инструкции, но до фактического получения данных:
$getUsers = $DBH->prepare("SELECT * FROM users ORDER BY id ASC"); $getUsers->execute(); $users = $getUsers->fetchAll(); ...
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 } ?>