2012-05-10 242 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。