PDO fetch/fetchAll

Ron*_*nie 2 php mysql pdo

对PHP来说并不陌生,但对PDO只有一天的时间.当然我在这里做错了.

    $query = $conn->prepare("SELECT * FROM admins WHERE username = :username AND password = :password");
    $query->execute(array('username' => $username,'password' => sha1($password)));
    $result = $query->fetchAll(PDO::FETCH_ASSOC);
    if (count($result) > 0)
    {
        $_SESSION['user']['who']        = $result[0]['who'];
        $_SESSION['user']['email']  = $result[0]['email'];
        $_SESSION['user']['username']   = $result[0]['username'];
        echo REFRESH;
    }
    else
    {
        $message = "Invalid username / password.";  
    }
Run Code Online (Sandbox Code Playgroud)

我可以$_SESSIONS正确声明这些的唯一方法是,如果我使用我$result[0]['fieldName'];怎样才能通过它访问它$result['fieldName'];

Exp*_*lls 9

fetchAll正如文档所说,它同时检索所有获取数据的数组.因为您正在使用FETCH_ASSOC,所以会获取一组关联数组.如果您确定只返回了一列或只对返回的第一列感兴趣,请使用fetch.否则,您必须迭代fetchAll结果或执行您已完成的操作.