PDO从数据库中获取数据

chi*_*ijs 7 php select pdo while-loop fetch

我最近开始使用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.');
}
Run Code Online (Sandbox Code Playgroud)

但它没有显示任何用户,只是一个空白页面..

new*_*rey 19

PDO方法fetchAll()返回一个数组/结果集,您需要将其分配给变量,然后使用/遍历该变量:

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

UPDATE(缺失execute())
此外,您准备语句之后但实际获取数据之前,您似乎没有调用execute()需要发生的方法:

$getUsers = $DBH->prepare("SELECT * FROM users ORDER BY id ASC");
$getUsers->execute();
$users = $getUsers->fetchAll();
...
Run Code Online (Sandbox Code Playgroud)


小智 5

下面的代码将满足您的要求:

$sql = $dbh->prepare("SELECT * FROM users ORDER BY id ASC");
$sql->execute();
while ($result = $sql->fetch(PDO::FETCH_ASSOC)) {
    echo $user['username']."<br/>";
}
Run Code Online (Sandbox Code Playgroud)