2012-11-01 31 views
5

Ich begann PDO vor kurzem zu verwenden, früher war ich nur mit mysql .. Jetzt versuche ich alle Daten aus der Datenbank zu bekommen.PDO Daten aus der Datenbank

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

Aber es keine Benutzer zeigt, nur eine leere Seite ..

+0

Was ist 'Fehler (...)'? Stellen Sie sicher, dass die Fehlerberichterstattung aktiviert ist. – Neal

Antwort

14

Die PDO Methode fetchAll() ein Array/Ergebnis-Set zurückgibt, die Sie zu einer Variablen zugewiesen werden müssen und dann/iterieren diese Variable:

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

UPDATE (fehlende execute())
auch es scheint, dass Sie nicht t fordern er execute() Methode, die nach Sie die Anweisung vorzubereiten, aber vor geschehen muss man die Daten tatsächlich holen:

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

Es funktioniert sowieso nicht .. leere Seite, keine Fehler. – chizijs

+0

@ user1791971 Wenn Sie 'var_dump ($ users);', nach dem 'fetchAll()', was wird es angezeigt? – newfurniturey

+0

Haben Sie eine Fehlerprüfung an und zeigen Sie an: add 'error_reporting (E_ALL); ini_set ('display_errors', '1'); 'zum Anfang des Skripts –

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