首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于PDOStatement::fetch()的说明

关于PDOStatement::fetch()的说明
EN

Stack Overflow用户
提问于 2012-04-09 18:34:00
回答 2查看 3.2K关注 0票数 2

我注意到PDO::FETCH_INTO fetch模式在PDOStatement::fetch()中不起作用,但在manual中,它说你可以在PDOStatement::fetch()中使用PDO::FETCH_INTO

我想做的是:$query->fetch( PDO::FETCH_INTO,$user );

这将返回:PDOStatement::fetch() expects parameter 2 to be long, object given

这不是意味着手册有点误导吗?在这种情况下,使用PDO::FETCH_INTO的正确方式是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-09 19:04:54

尝试这样做:

代码语言:javascript
复制
$stmt->setFetchMode(PDO::FETCH_INTO, $user);
$user = $stmt->fetch();

更新:

如果您的私有/受保护属性具有公共setter(推荐),而不是公共属性,请改用FETCH_CLASS:

代码语言:javascript
复制
class User {
    protected $username;

    public setUsername($username) {
        $this->username = $username;
    }
...
}
...
$stmt->setFetchMode(PDO::FETCH_CLASS, 'User');
$user = $stmt->fetch();

更新2:

使用PDO::FETCH_CLASS,您甚至不需要设置器(编辑:不需要PDO的设置器,这适用于id字段):

代码语言:javascript
复制
class User {
    protected $username;
...
}
...
$stmt->setFetchMode(PDO::FETCH_CLASS, 'User');
$user = $stmt->fetch();

更新3:在此处查看完整示例:http://pastebin.com/LneAj0xn

票数 2
EN

Stack Overflow用户

发布于 2012-04-09 18:38:49

请注意,PDOStatement::fetch()的第二个参数是cursor_orientation

你可能想要这样的东西:

代码语言:javascript
复制
$user = $query->fetch(PDO::FETCH_INTO);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10071948

复制
相关文章

相似问题

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