logo

额外区块类型 (EBT) - 全新的布局构建器体验❗

额外区块类型 (EBT) - 样式化、可定制的区块类型:幻灯片、标签页、卡片、手风琴等更多类型。内置背景、DOM Box、JavaScript 插件的设置。立即体验布局构建的未来。

演示 EBT 模块 下载 EBT 模块

❗额外段落类型 (EPT) - 全新的 Paragraphs 体验

额外段落类型 (EPT) - 类似的基于 Paragraph 的模块集合。

演示 EPT 模块 滚动

滚动

Drupal 7 — 使用 PHP PDO 进行数据库操作

14/10/2025, by Ivan

随着我们迁移到 Drupal 7,我们也转向了新的 Drupal 数据库抽象层 API,它基于 PDO 实现。PDO 早已被广泛应用于 Zend Framework 以及许多其他 PHP 框架中。那么,既然在 Drupal 6 中编写 SQL 查询已经很方便了,为什么还需要新的方式呢?

首先,让我们了解一下什么是 PDO。

PDO(PHP Data Objects) 允许将 PHP 与数据库交互的代码从一种数据库轻松迁移到另一种数据库。例如,如果你的网站之前使用 MySQL,现在你可以几乎无缝地迁移到 PostgreSQL。至于 Oracle,我暂时还没测试过,但理论上它也应该可以正常工作。

PHP Data Objects(PDO)是 PHP 的一个扩展,它为访问数据库提供了一个轻量级、统一的接口。每个数据库的驱动程序都通过 PDO 接口实现,并且可以扩展以支持特定数据库服务器的功能。

PDO 提供了一个抽象访问层,用于处理查询和返回数据。然而需要注意的是,PDO 并不对数据库本身进行抽象——它不会改写 SQL 语法,也不会模拟某些数据库中缺失的功能。如果你需要这种级别的抽象(例如自动兼容不同 SQL 方言),则需要使用更完整的数据库抽象层。PDO 兼容 PHP 5.1 及更高版本,并可作为 PHP 5 的 PECL 扩展。PDO 依赖于 PHP 5 核心中的新面向对象特性,因此不支持旧版本的 PHP。

这意味着开发者可以更轻松地编写跨平台的数据库代码。需要明确的是,PDO 并不是一个像 PearDB 那样的完整抽象层,它更接近于一个用于数据库访问的通用接口,而非高层 API。

如果我们打算为 Drupal 7 编写模块,那么必须使用 PDO 语法来编写数据库查询,这样模块才能兼容并运行在不同类型的数据库上。