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

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