25

ORM と PDO の違いについて少し混乱していますか?
PDOは一種のORMですか?

私の理解によると、ORMは基本的に一種のデータマッピングであり、PDOはデータベースデータの抽象化も提供します。

4

2 に答える 2

36

PDO と ORM は 2 つのまったく異なるものです。

PDO は Database Access Abstraction Layer の特定の実装であり、さまざまなデータベース バックエンド (MySQL、PostgreSQL、MS SQL など) 間で一貫した API を使用して、接続、SQL の実行、およびデータベースからの結果の取得を可能にします。

一方、ORM はより専門的なものです。リレーショナル テーブルをアプリケーション ドメイン オブジェクトとそれらの間の関係にマッピングするためのフレームワークです。これらは、多くの場合、PDO のような DAL の上に構築されます。

違いを確認するには、オブジェクトまたはレコードを取得する必要があると考えてください。PDO では、適切なテーブルで適切な行を選択するための SQL を記述し、その行を抽出し、フィールドを PHP オブジェクトの変数にマッピングするためのロジックを用意する必要があります。ユーザーとして、これらすべてを処理する必要があります。一方、ORM を使用すると、「この ID でオブジェクト X を見つけてください」と簡単に言うことができます。そうすれば、SQL を自分で記述しなくても、ORM が魔法のようにそのオブジェクトを提供してくれます。

于 2012-05-10T01:11:11.377 に答える
12

いいえ、それらは別のものです。

PDOは SQL データベースに接続するための抽象化レイヤーであるため、同じコードを使用して MySQL、PostgreSQL などを操作できます。

ORM は、データベース エンティティをオブジェクトにマッピングする概念です。 Doctrineは、データベースへのさまざまな接続方法をサポートする PHP ORM フレームワークの一例であり、その 1 つが PDO です。

于 2012-05-10T01:02:46.773 に答える