【发布时间】:2014-02-20 12:16:16
【问题描述】:
当我将fetchAll() 查询结果(SELECT * FROM users ...)作为对象数组时,我希望这些对象属于某个类,即User。
- 如何强制 PDO 将数据类型
User用于结果对象,以及 - 类中的字段名对应的所有成员变量都必须定义吗?
【问题讨论】:
当我将fetchAll() 查询结果(SELECT * FROM users ...)作为对象数组时,我希望这些对象属于某个类,即User。
User 用于结果对象,以及【问题讨论】:
有一个静态字段告诉 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 对象的数组进行访问。
【讨论】:
看看http://www.php.net/manual/en/pdostatement.setfetchmode.php 将获取模式设置为 FETCH_CLASS 应该可以让您顺利上路。
编辑:KarelG 打败了我 ;)
【讨论】: