PHP PDO 基础教程:安装配置与常用操作指南

青禾
青禾
发布时间:2026-10-15| 3人浏览过
原创

PHP的PDO(PHP Data Objects)是统一访问数据库的强大工具。本教程指导用户完成PDO的环境配置,并演示如何建立数据库连接、执行增删改查操作以及获取数据结果。

PDO 环境配置

PDO 自 PHP 5 起被整合为核心功能,替代了过去繁复的各类数据库扩展(如 php_mysql.dll)。正确安装和配置驱动是使用 PDO 的前提。

第一步:修改扩展目录路径

打开 PHP 配置文件 php.ini,查找并修改 extension_dir 参数,使其指向正确的扩展库目录。

extension_dir = "C:/php5/ext"

注:具体路径需根据服务器的 PHP 安装实际位置进行调整。

第二步:加载 PDO 驱动

在 php.ini 中找到 “Dynamic Extensions” 部分,取消注释或添加以下行以开启所需的数据库驱动:

; Dynamic Extensions
extension=php_pdo.dll
extension=php_pdo_mysql.dll
extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll

可根据需求添加其他驱动(如 MS SQL Server、ODBC 等),无需使用的驱动建议保留分号注释以免报错。配置完成后,重启 Web 服务器(IIS 或 Apache)使配置生效。

第三步:验证安装

在 Web 根目录下创建测试文件 phpinfo.php,写入:<?php phpinfo(); ?>。在输出页面中搜索 “PDO”,若看到 PDO support enabled 且下方列出了各驱动的说明,则表明安装成功。

PDO 基础操作

PDO 连接数据库主要依赖数据源名称(DSN)来指定数据库类型、主机和名称。以下以 MySQL 为例进行说明。

建立连接与执行查询

使用 new PDO() 构造函数创建实例。第一个参数为 DSN 字符串,后续为用户名和密码。

$dsn = "mysql:host=localhost;dbname=test";
$db = new PDO($dsn, 'root', '');

// 执行插入操作,返回影响行数
$count = $db->exec("INSERT INTO foo SET name='heiyeluren', gender='男', time=NOW()");
echo $count;

$db = null; // 关闭连接释放资源

若需使用长连接,可在第三个参数后追加数组:array(PDO::ATTR_PERSISTENT => true)。

数据提取技巧

对于 SELECT 语句,PDO 提供了多种方式来获取和处理结果集。

遍历读取

可以使用 query() 直接返回结果集并进行迭代,或者先赋值给变量再循环:

// 方式一:直接迭代
foreach($db->query("SELECT * FROM foo") as $row) {
    print_r($row);
}

// 方式二:while循环
$rs = $db->query("SELECT * FROM foo");
while($row = $rs->fetch()) {
    print_r($row);
}

获取完整数组

若要将所有数据一次性存入数组,可使用 fetchAll():

$rs = $db->query("SELECT * FROM foo");
$result_arr = $rs->fetchAll();
print_r($result_arr);

优化数据格式

默认情况下,fetchAll() 会同时包含数字索引和关联索引,造成冗余。建议使用 setFetchMode() 指定仅获取关联数组:$rs->setFetchMode(PDO::FETCH_ASSOC)。也可以通过 setAttribute() 控制列名的大小写形式(如 PDO::CASE_LOWER)。

单字段统计

在执行统计类查询(如 COUNT(*))时,推荐使用 fetchColumn() 直接提取第一行的第一个字段值:

$rs = $db->query("SELECT COUNT(*) FROM foo");
$col = $rs->fetchColumn();
echo $col;

进阶功能简述

  • 预处理(Prepared Statements): 使用 prepare() 处理可带参数的 SQL 语句,配合 execute() 绑定参数运行。这能有效防止 SQL 注入并提升重复执行的效率。
  • 自动增长 ID: 使用 $db->lastInsertId() 获取最后一次插入操作生成的主键 ID。
  • 受影响的行数: rowCount() 主要用于 DELETE、UPDATE 后的结果确认,对 SELECT 的支持视数据库驱动而定。

以上就是 PDO 基础配置与入门用法的详细内容,更多关于 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 算法库。