数据对象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