【问题标题】:PDO::FETCH_OBJ + custom classes?PDO::FETCH_OBJ + 自定义类?
【发布时间】:2014-02-20 12:16:16
【问题描述】:

当我将fetchAll() 查询结果(SELECT * FROM users ...)作为对象数组时,我希望这些对象属于某个类,即User

  1. 如何强制 PDO 将数据类型 User 用于结果对象,以及
  2. 类中的字段名对应的所有成员变量都必须定义吗?

【问题讨论】:

    标签: php mysql pdo


    【解决方案1】:

    有一个静态字段告诉 PDO 提取到一个类中,PDO::FETCH_CLASS

    这里是一个获取User对象的例子;

    class User {
        public $name;
        public $firstname;
    }
    

    您必须确保字段名称与列名称相同,并且可以从您正在使用的类/文件访问该类。 (SELECT * 也可以,只要所有字段都可用)

    $query = "SELECT name, firstname FROM users";
    

    要将其包装在类中,请使用下一个,

    $users = $sth->fetchAll(PDO::FETCH_CLASS, "User");
    

    然后您可以简单地将其作为User 对象的数组进行访问。

    【讨论】:

      【解决方案2】:

      看看http://www.php.net/manual/en/pdostatement.setfetchmode.php 将获取模式设置为 FETCH_CLASS 应该可以让您顺利上路。

      编辑:KarelG 打败了我 ;)

      【讨论】:

        猜你喜欢
        • 2021-12-09
        • 2016-01-19
        • 1970-01-01
        • 1970-01-01
        • 2013-01-07
        • 1970-01-01
        • 2017-08-16
        • 1970-01-01
        相关资源
        最近更新 更多