【发布时间】:2015-09-08 13:20:55
【问题描述】:
我遇到了一段代码,其中调用 PDO::FETCH_CLASS 时没有将类的名称作为参数传递,如下所示:
function getUsers() {
$DBH = $this->getDbh();
$query = "SELECT * FROM users";
try {
$STH = $DBH->query($query);
$users = $STH->fetchAll(PDO::FETCH_CLASS);
} catch(PDOException $e) {
}
return $users;
}
现在,在官方documentation 中写道:
如果 fetch_style 包含 PDO::FETCH_CLASSTYPE(例如 PDO::FETCH_CLASS | PDO::FETCH_CLASSTYPE),则类的名称由第一列的值确定。
所以我不确定我是否完全理解它们的意思以及它是如何工作的。
假设我有一个记录的users 表
- id:1
- 姓名:乔什
- 等等..
那么PDO::FETCH_CLASS 怎么知道类名是什么?我可以以FETCH_CLASS 从数据库中获取类名的方式将列添加到我的记录中吗?记录结构的例子将受到高度赞赏...thx
*我正在测试这个类但不是作者所以改变类是无关紧要的
【问题讨论】:
-
我有一种奇怪的感觉,这是一个错字,他们的意思是“表名”——但我是基于零事实证据:)
-
其实它只是返回一个
\stdClass实例,比如PDO::FETCH_OBJ。