PDO :: FETCH_OBJ +自定义类?

时间:2014-02-20 12:16:17

标签: php mysql pdo

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

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

2 个答案:

答案 0 :(得分:2)

有一个静态字段告诉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个对象的数组进行访问。

答案 1 :(得分:0)

看看http://www.php.net/manual/en/pdostatement.setfetchmode.php 将获取模式设置为FETCH_CLASS应该可以帮助您。

编辑:KarelG打败了我;)