PHP 使用 PDO 连接与查询数据库:基础示例与类封装

Oliver
Oliver
发布时间:2026-10-14| 3人浏览过
原创

本文详解 PHP 中 PDO(PHP Data Objects)连接与查询 SQL 数据库的实现方式。涵盖基础连接代码、异常处理机制以及通过继承 PDO 类进行二次开发的封装技巧,帮助开发者建立统一、安全的数据库交互方案。

PDO 简介与目标

PDO 扩展自 PHP 5 起引入,旨在提供一种轻量级、清晰且统一的 API,以解决不同关系型数据库(RDBMS)连接接口不统一的问题。PDO 的设计目标包括:

  • 统一性:不同数据库使用相同的方法名访问,便于切换数据库后端。
  • 高性能:基于 PHP 5 特性重新设计,优化执行效率。
  • 运行时可扩展:支持模块化加载驱动程序(如 pdo_mysql, pdo_pgsql),无需重新编译 PHP。
  • 易用性:API 设计直观,明确每个函数调用的作用。

基础操作:连接与查询

要实现数据库连接,首先需要构建数据源名称(DSN),包含数据库类型、主机地址和数据库名。以下是基础的连接与查询示例。

第1步:定义连接参数

准备数据库账号、密码及连接信息。注意在实际环境中,应避免硬编码敏感信息。

$login = "root";
$passwd = "mysql";

第2步:建立连接并执行查询

使用 try-catch 结构包裹 PDO 实例化代码,以捕获潜在的连接错误。成功连接后,通过 query() 方法执行 SQL 语句并遍历结果集。

$db = new PDO('mysql:host=localhost;dbname=mysql', $login, $passwd);
foreach($db->query('select * from test') as $row){
    print_r($row);
}
$db = null; // 显式关闭连接

若连接失败,代码将捕获 PDOException 并输出错误信息。

进阶实践:封装 PDO 基类

在复杂应用中,建议封装一个继承自 PDO 的类,以统一管理连接逻辑、预处理参数或自定义属性设置。

第1步:定义类结构与初始化参数

声明数据库类型、主机、库名、用户名和密码等常量或变量,并拼接 DSN 字符串。

$dbms='mysql';
$host='localhost';
$dbname='test';
$user='root';
$pass='';
$dsn="$dbms:host=$host;dbname=$dbname";

第2步:继承 PDO 并实现构造函数

创建自定义类 db 继承自 PDO。在构造函数中调用父类构造函数进行连接,并处理异常退出。

class db extends PDO {
    public function __construct(){
        try {
            parent::__construct($dsn, $user, $pass);
        } catch (PDOException $e) {
            die("error: " . $e->__toString() . "<br/>");
        }
    }
}

第3步:重写查询方法与自定义逻辑

可根据需求重写 query() 或其他方法。例如,添加字符处理或属性设置功能。以下示例展示了如何设置返回数组键的大小写,并执行删除操作。

$db = new db();
$db->setAttribute(PDO::ATTR_CASE, PDO::CASE_UPPER); 
foreach ($db->query('select * from xxxx_menu') as $row) {
    print_r($row);
}
$db->exec('delete from `xxxx_menu` where mid=43');

通过这种方式,可以将通用的数据库操作逻辑集中在类中,提高代码复用性和可维护性。

注意事项与排错

  • 驱动安装:确保 PHP 环境已启用对应的 PDO 驱动(如 pdo_mysql),否则连接时会报错。
  • 错误模式:建议在使用 PDO 时,通过 $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 设置抛出异常模式,以便及时发现 SQL 错误。
  • 资源释放:完成数据库操作后,将 PDO 对象置为 null 有助于显式关闭连接。

总结

PDO 为 PHP 提供了标准且强大的数据库访问接口。无论是简单的脚本测试还是复杂的 Web 应用开发,掌握 PDO 的连接配置、查询技巧及类封装方法,都能显著提升数据库操作的稳定性和代码质量。以上就是 PHP 使用 PDO 连接并查询 SQL 数据库的详细内容,更多关于 PHP 数据库程序设计资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。