2012-11-01 103 views
5

我最近開始使用PDO,早些時候我剛剛使用mysql .. 現在我試圖從數據庫中獲取所有數據。PDO從數據庫中獲取數據

$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.'); 
} 

但它沒有表現出任何用戶,只是一個空白頁..

+0

什麼是'錯誤(...)'?確保錯誤報告是... – Neal

回答

14

PDO方法fetchAll()返回數組/結果集,你需要分配給一個變量,然後使用/遍歷該變量:

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

UPDATE(缺少​​)
此外,它似乎你是不是叫牛逼他execute()方法,它需要發生後,之前準備的發言,但你實際獲取數據:

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

它不工作無論如何..空白頁,沒有錯誤。 – chizijs

+0

@ user1791971如果在'fetchAll()'之後執行'var_dump($ users);',它會顯示什麼? – newfurniturey

+0

你有錯誤檢查和顯示:add'error_reporting(E_ALL); ini_set('display_errors','1');'到腳本的頂部 – 2012-11-01 19:08:27

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 } ?>