Database API
Drupal 提供了一个 数据库抽象层
,使得开发者可以使用统一的方式与不同厂牌的数据库交互。
它是构建在 PHP PDO API 之上的,所以它的大部分语法和概念与之很相似。
除了提供统一的 API 来与数据库交互之外,Drupal 数据库抽象层还提供了一种结构化的数据库查询构建方法,
它类似 Laravel Eloquent
的 Active Records
类型 ORM,并且具有安全机制,可以有效防止 SQL 攻击。
开发者不应该跳过 数据库抽象层
直接调用 PHP 函数查询数据库,除非是万不得已。
使用 Drupal Database API
主要有如下好处:
- 使支持多数据库服务器变得容易。
- 使开发者更方便地使用一些复杂的数据库功能,比如事务。
- 提供一种结构化的查询构建方式,使得查询更容易编写。
- 强制使用安全检查,以及其它的一些最佳实践。
- 提供了简洁的接口,使得查询可以被拦截或修改。
但是,需要知道的是,Database API
并不总是最合适的数据库交互方式,
在后面,我们会学到 Entity API
,是一种更高层次,并且更高效的数据库交互方式。
概念
驱动(Driver)
不同厂牌的数据库,Drupal 使用不同的驱动程序来进行支持, Drupal Core 默认对 3 个开源数据库进行了支持:
登录后查看完整内容