PDO获取不会';获取时不工作所有工作


PDO fetch doesn't work while fetchAll works

我正试图在我的网站中实现PDO,我检查了fetch和fetchAll的使用情况,发现了这种奇怪的行为。这个代码工作得很好:

    $query="SELECT `id`, `username`, `nome`, `email`, `pwd`, `level` FROM `users` WHERE `username`= ? LIMIT 1";
    $stmt=$myconn->prepare($query);
    $stmt->bindParam(1, $uname);
    $stmt->execute();
    $row=$stmt->fetchAll();
    print_r($row);

而这个不起作用:fetch返回false,没有错误代码(00000):

    $query="SELECT `id`, `username`, `nome`, `email`, `pwd`, `level` FROM `users` WHERE `username`= ? LIMIT 1";
    $stmt=$myconn->prepare($query);
    $stmt->bindParam(1, $uname);
    $stmt->execute();
    while($row = $stmt->fetch()) {
        echo $row->username . "'n";
        echo $row->nome . "'n";
        echo $row->email . "'n";
    }

知道为什么吗?

这应该有效:

$stmt=$myconn->prepare($query);
$stmt->bindParam(1, $uname);
$stmt->execute();
$stmt->setFetchMode(PDO::FETCH_ASSOC);  
while($row = $stmt->fetch()) {
    echo $row['username'] . "'n";
    .        
    .
    .
}