我注意到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的正确方式是什么?
发布于 2012-04-09 19:04:54
尝试这样做:
$stmt->setFetchMode(PDO::FETCH_INTO, $user);
$user = $stmt->fetch();更新:
如果您的私有/受保护属性具有公共setter(推荐),而不是公共属性,请改用FETCH_CLASS:
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字段):
class User {
protected $username;
...
}
...
$stmt->setFetchMode(PDO::FETCH_CLASS, 'User');
$user = $stmt->fetch();更新3:在此处查看完整示例:http://pastebin.com/LneAj0xn
发布于 2012-04-09 18:38:49
请注意,PDOStatement::fetch()的第二个参数是cursor_orientation。
你可能想要这样的东西:
$user = $query->fetch(PDO::FETCH_INTO);https://stackoverflow.com/questions/10071948
复制相似问题