php - PDOStatement::fetch() 说明

标签 php pdo

我注意到 PDO::FETCH_INTO 获取模式在 PDOStatement::fetch() 中不起作用,但在 manual 中它说您可以将 PDO::FETCH_INTOPDOStatement::fetch() 一起使用。

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

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

这是否意味着该手册具有误导性?在这种情况下,使用 PDO::FETCH_INTO 的正确方法是什么?

最佳答案

试试这个方法:

$stmt->setFetchMode(PDO::FETCH_INTO, $user);
$user = $stmt->fetch();

更新:

如果您拥有带有公共(public) setter (推荐)而不是公共(public)属性的私有(private)/ protected 属性,请改用 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,您甚至不需要 setter(编辑:不需要 PDO 的 setter,这对 id 字段很有用):

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

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

关于php - PDOStatement::fetch() 说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10071948/

相关文章:

php - PDO 即使没有绑定(bind)任何参数仍然会得到结果

php - PDO 执行查询在我的数据库中插入更多行,然后它应该

php - 浏览器的 X-XSS-Protection/XSS Auditor 是否足以防止 XSS?

php - 未找到数据源名称,并且未指定默认驱动程序

PHP Mysql 获取日期范围内的统计信息

php - 构建 MySQL 表,其中 PLAYLIST 表引用多个 VIDEO id 整数和 USER 表 id

php - PDO 和类给出 fatal error : Call to a member function query()

php - 使用Ajax从mysql获取数据

php - 如何拒绝/阻止用户在浏览器的新选项卡中打开我网站中的链接?

PHP PDO显示表格函数仅显示最新的表格而不是全部