PDO类在PHP中扩展和获取类

时间:2016-07-06 20:42:26

标签: php pdo fetch extends

对不起,问题太糟糕了,没有正确答案,所以现在我编辑了:

手册说:

PDO :: FETCH_CLASS:返回指定类的实例,将每行的列映射到类中的命名属性。

我怀疑的是,如果类从另一个具有更多属性的类扩展,那么这个属性是否会被实例化?

很抱歉,如果我不清楚这个问题,我不会说英语。谢谢大家。

1 个答案:

答案 0 :(得分:2)

一个好问题。

对于PDO,类层次结构实际上并不重要。 PDO正在做的只是从数据库中获取列并将它们分配给类属性,而不管类定义或继承。

  • 如果某个属性不存在,PDO将尝试创建该属性。
  • 如果有一个没有要映射的列的属性 - 那么PDO将不管它。

就这么简单。因此,它应该创建您从数据库中选择的任何内容。

截至您之前在问题中的特定代码 - 您必须对其进行调试。看,看看是否有任何东西被提取,你正在使用printNickName()的任何方法。但是使用此方法或任何中间过程可能会出现任何错误。我建议您只创建空类,在其中获取数据,并直接检查属性。

确保正确设置了所有属性后,您可以尝试使用自定义类定义。要调试返回的数据,我建议使用

$stmt->execute();
var_dump($stmt->fetchAll(PDO::FETCH_CLASS, 'User'));

您可以从我的文章Fetching objects with PDO

中了解PDO课程处理的其他详细信息