PDO、DAO、ORM之間的區別

數據對象PDO (PHP Ddata Object) 擴展爲PHP訪問數據庫定義了一個輕量級的一致接口。提供了一個數據訪問抽象層,這意味着,不管使用哪種數據庫,都可以用相同的函數(方法)來查詢和獲取數據。強調的是數據庫連接。

數據存取對象DAO(Data Access Object)描述瞭如何創建透明訪問數據源的對象,目的就是爲了解決重複與數據源抽象化。應用程序的主要處理代碼不再需要考慮數據庫引擎或表關係。DAO 是一個層,數據訪問層。調用者可以使用統一的API操作不同類型的數據庫。

對象關係映射ORM(Object Relational Mapping)基本上是一種數據映射,是將數據庫實體映射到對象的概念,可以理解成一個對象對應的就是數據庫的一張表。

這個是非DAO的代碼

$db = mysql_connect(...);
$query = mysql_query('SELECT * FROM user WHERE uid=123', $db);
while($line = mysql_fetch_array($query)) {
  //xxx
}
這個是DAO的代碼(對,PDO其實就是典型的DAO)
$db = new PDO('mysql...');
$query = $db->prepare('SELECT * FROM user WHERE uid = :uid');
$query->execute(['uid' => 123]);
$result = $query->fetchAll();
ORM
class User extends ORMClassXXX {
    public $id;
    public $name;
    public $password;
}

$result = User::getById(123);

參考:
https://segmentfault.com/q/1010000002385211
https://m.xp.cn/c.php/79724.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章