PDO class 在 PHP 中扩展并获取 class

PDO class extends and fetch class in PHP

抱歉,这个问题太糟糕了,没有合适的答案,所以现在我编辑了:


手册说:

PDO::FETCH_CLASS: Returns 指定 class 的实例,将每一行的列映射到 class.[=13= 中的命名属性]

我怀疑如果 class 从另一个具有更多属性的 class 扩展,这个属性会被实例化吗?

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

好问题。

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

  • 如果 属性 不存在,PDO 将尝试创建它。
  • 如果 属性 没有要映射的列 - 那么 PDO 将不理会它。

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

关于您之前在问题中遇到的特定代码 - 您必须对其进行调试。看,要查看是否获取了任何内容,您正在使用任何方法 printNickName()。但是这种方法或任何中间过程都可能有任何错误。我建议您只创建空 classes,在其中获取数据,然后直接检查属性。

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

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

您可以从我的文章中了解 PDO class 处理的其他细节,Fetching objects with PDO