2012-05-10 66 views
18

关于ORM和PDO之间的区别,我有点困惑吗?
PDO是一种ORM吗?orm和pdo之间的区别

根据我的理解,ORM基本上是一种数据映射,PDO也提供了数据库数据的抽象。

回答

26

PDO和ORM是两个完全不同的东西。

PDO是数据库访问抽象层的特定实现,它使您能够连接,运行SQL并从数据库中检索结果,并使用跨不同数据库后端(例如MySQL,PostgreSQL,MS SQL等)保持一致的API )

另一方面,ORM更专门:它是一个将关系表映射到应用程序域对象以及它们之间关系的框架。这些通常建立在DAL之上,如PDO。

若要查看差异,请考虑必须检索对象或记录。使用PDO,您需要编写用于在右表中选择正确行的SQL,并具有提取该行的逻辑,并将这些字段映射到PHP对象的变量。你作为用户必须照顾这一切。另一方面,使用ORM,你可以简单地说:通过这个ID找到对象X,ORM会发挥它的魔力并为你提供该对象,而不必自己编写SQL。

8

不,他们是不同的东西。

PDO是SQL数据库连接的抽象层,这样你就可以使用相同的代码与MySQL和PostgreSQL等

ORM是映射数据库实体到对象的概念来工作。 Doctrine是PHP ORM框架的一个示例,它支持连接数据库的各种不同方式,其中之一是PDO。