首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PDO fetch / fetchAll

PDO fetch / fetchAll
EN

Stack Overflow用户
提问于 2012-12-29 05:20:32
回答 2查看 19.7K关注 0票数 2

PHP不是新手,但PDO才刚上手一天。当然我在这里做错了什么。

代码语言:javascript
复制
    $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.";  
    }

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-29 05:25:08

正如文档所述,fetchAll同时检索所有获取数据的数组。由于您使用的是FETCH_ASSOC,因此将获取关联数组的数组。如果您确定只返回一列,或者只对返回的第一列感兴趣,那么只需使用fetch。否则,您必须遍历fetchAll结果或执行已完成的操作。

票数 9
EN

Stack Overflow用户

发布于 2012-12-29 05:23:39

使用:

代码语言:javascript
复制
foreach( $result as $row )  
{  
    $_SESSION['user']['who']  = $row['who'];
    .... and so on
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14075954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档