2012-11-01 17 views
5

Ho iniziato a utilizzare PDO di recente, in precedenza stavo usando solo mysql .. Ora sto cercando di ottenere tutti i dati dal database.PDO ottenere dati dal database

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

Ma non mostrare tutti gli utenti, solo una pagina vuota ..

+0

Qual è 'errore (...)'? Assicurati che la segnalazione degli errori sia attiva ... – Neal

risposta

14

Il metodo PDOfetchAll() restituisce un/set di risultati array, che è necessario assegnare a una variabile e quindi utilizzare/scorrere tale variabile:

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

UPDATE (manca execute())
Inoltre, sembra che non sta chiamando t egli execute() metodo che deve accadere dopo a preparare la dichiarazione, ma prima di effettivamente recuperare i dati:

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

Non funziona comunque .. pagina vuota, nessun errore. – chizijs

+0

@ user1791971 Se si esegue 'var_dump ($ users);', dopo 'fetchAll()', cosa viene visualizzato? – newfurniturey

+0

si verificano errori durante la verifica e la visualizzazione: aggiungi 'error_reporting (E_ALL); ini_set ('display_errors', '1'); 'all'inizio dello script –

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