在 PHP5 面向对象中获取大量数据的正确方法
Posted
技术标签:
【中文标题】在 PHP5 面向对象中获取大量数据的正确方法【英文标题】:The correct way to fetch a lot of data in PHP5 object oriented 【发布时间】:2009-03-31 07:51:26 【问题描述】:幸运的是,我知道如何从数据库中获取数据,这不是问题。
对于我的面向对象应用程序,我将有一个包含用户/人员的表。
我还有一个person
课程。
案例: 我想向最终用户显示所有人员的列表。这样做的正确方法是什么?
或者有其他更好的方法吗?
您能否也显示一些(伪)代码?
谢谢
【问题讨论】:
【参考方案1】:mysql_fetch_object()
函数接受第二个参数,即要使用的类名:
$myPerson = mysql_fetch_object($result, 'person');
【讨论】:
不要忘记在写出对象后丢弃对对象的引用,否则如果周围有太多对象,您将耗尽可用内存。【参考方案2】: 选项 1:使用 ORM(Propeler,Doctrine) 选项 2:创建类 People ("Persons"),它将使用mysql_fetch_*
加载其数据,然后创建 Person 对象数组。让它实现IteratorAggregate
和getIterator
返回ArrayIterator(personArray)
【讨论】:
感谢您的反应。我已经创建了迭代器,但真的不知道如何使用它。 如果你有实现 IteratorAggregate 的对象 People,你可以使用它:foreach (people as person) doSomethingWith(person) 好的,我会尝试解决它,否则我将在不同的主题中详细说明。到目前为止,谢谢。【参考方案3】:如果你使用PDO,$pdoStatement->fetchObject($type)
会获取一行作为$type
类的实例
要获取所有对象作为$type
类的实例,请使用$pdoStatement->fetchAll(PDO::FETCH_CLASS, $type)
【讨论】:
感谢您的回复。但是我们不使用 pdo 类。我们制作了自己的以上是关于在 PHP5 面向对象中获取大量数据的正确方法的主要内容,如果未能解决你的问题,请参考以下文章