25

我对 ORM 和 PDO 之间的区别有点困惑?
PDO 是一种 ORM 吗?

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

4

2 回答 2

36

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

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

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

要查看差异,请考虑必须检索对象或记录。使用 PDO,您需要编写 SQL 以在正确的表中选择正确的行,并具有提取该行并将字段映射到 PHP 对象的变量的逻辑。作为用户,您必须处理所有这些。另一方面,对于 ORM,您只需说:通过此 ID 找到对象 X,然后 ORM 会发挥其魔力并为您提供该对象,而无需您自己编写 SQL。

于 2012-05-10T01:11:11.377 回答
12

不,它们是不同的东西。

PDO是用于连接 SQL 数据库的抽象层,因此您可以使用相同的代码来处理 MySQL、PostgreSQL 等。

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

于 2012-05-10T01:02:46.773 回答