Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用PDO获取2个或多个对象_Php_Oop_Pdo - Fatal编程技术网

Php 使用PDO获取2个或多个对象

Php 使用PDO获取2个或多个对象,php,oop,pdo,Php,Oop,Pdo,我在我的项目中使用php和pdo。在这个项目中,我有很多选择,包括连接和返回differents表 当返回值仅来自1个表时,我使用PDO::FETCH_类填充返回值为DB的对象(所有类的属性都具有相同的DB列名称),我的问题是使用相同的查询填充2个或多个对象。如果您所说的是从一个数据库行生成两个类,然后使用PDO::FETCH_CLASS或PDO::FETCH_OBJ不会有帮助,因为在调用FETCH()之后,光标会移动到下一行集。回放PDO结果集取决于数据库,因此您的数据库可能不支持这一点 您的

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


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

如果您所说的是从一个数据库行生成两个类,然后使用
PDO::FETCH_CLASS
PDO::FETCH_OBJ
不会有帮助,因为在调用
FETCH()
之后,光标会移动到下一行集。回放PDO结果集取决于数据库,因此您的数据库可能不支持这一点


您的替代方法是使用
PDOStatement::fetchAll
,然后在对嵌套数组集进行迭代的过程中,每行决定是否添加一个或两个对象。要做到这一点,您可能需要一个构造函数或公共setter。

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