【问题标题】:Fetching 2 or more objects with PDO使用 PDO 获取 2 个或更多对象
【发布时间】:2018-03-09 13:52:54
【问题描述】:

我在我的项目中使用 php 和 pdo。在这个项目中,我有很多选择不同表的连接和返回。

当返回仅来自 1 个表时,我使用 PDO::FETCH_CLASS 来填充我的对象并返回 DB,(所有类的属性都具有相同的 DB 列名称)我的问题是填充 2 或更多具有相同查询的对象。

【问题讨论】:

  • 你的代码在哪里?
  • 在这种情况下代码不是导入的,因为我需要一个通用的解决方案来获取多个对象,与 PDO::FETCH_CLASS 相同,但我不能将 2 个或更多对象传递给 pdo 的这个静态函数。在我的搜索中,我没有看到任何 PDO 来解决这个问题,只使用 ORM 的
  • 因此您希望有人为您编写通用解决方案。嗯,从来不知道 Stack Overflow 是一项免费的编码写作服务。也许我没有收到备忘录
  • 这是一个有趣的问题,但我建议您重新提出并重新表述您的问题,因为目前听起来 PDO 中缺少一些明显的功能。当然不是这样,PDO 不应该返回多个对象,所以你必须手动编写这样的代码。要求通用解决方案,而不是指责 PDO 没有返回多个对象,这是一个合理的问题,IMO

标签: php oop pdo


【解决方案1】:

如果您正在谈论的是从一个数据库行生成两个类,那么使用PDO::FETCH_CLASSPDO::FETCH_OBJ 将无济于事,因为在调用fetch() 之后光标会移动到下一个行集。回退 PDO 结果集依赖于数据库,因此您的数据库可能不支持。

您的替代方法是使用PDOStatement::fetchAll,然后在对该嵌套数组集进行迭代期间,每行决定是否水合一个或两个对象。您可能需要构造函数或公共设置器才能做到这一点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-24
    • 2014-10-28
    • 2014-09-12
    • 1970-01-01
    • 2022-01-10
    • 2016-07-31
    相关资源
    最近更新 更多