PHP开启PDO扩展及使用方法详解
时间:2026-01-16 18:30:38 488浏览 收藏
本篇文章给大家分享《PHP如何开启PDO扩展及数据库操作方法》,覆盖了文章的常见基础知识,其实一个语言的全部知识点一篇文章是不可能说完的,但希望通过这些问题,让读者对自己的掌握程度有一定的认识(B 数),从而弥补自己的不足,更好的掌握它。
PHP 默认不启用 PDO 扩展,需手动安装、启用并验证:用 php -m | grep pdo 检查是否加载,或 phpinfo() 查看 PDO support 是否 enabled 及 drivers 是否包含所需数据库类型;Linux 下需同时安装 php-pdo 和 php-mysqlnd 并重启 Web 服务;Windows 下需在 php.ini 中取消 extension=php_pdo.dll 等三行注释并确认 .dll 文件名正确;最后用最小测试脚本验证连接。

PHP 默认不启用 PDO 扩展,必须手动确认安装、启用并验证——否则 new PDO() 会直接报错 Class 'PDO' not found 或 Call to undefined function pdo_connect()。
怎么看 PDO 扩展装没装、启没启
别猜,直接用 PHP 自带命令查:
php -m | grep pdo
如果输出里有 pdo 和 pdo_mysql(或其他驱动如 pdo_pgsql),说明扩展已安装且启用;只看到 pdo 没有具体驱动,说明 PDO 核心有了,但连 MySQL 都连不了;啥都没输出,就是完全没装或被注释掉了。
也可以建个 info.php 文件写
<?php phpinfo(); ?>,浏览器打开后搜
PDO,看 “PDO support” 是 enabled,再往下确认 “PDO drivers” 是否包含你需要的数据库类型。
Linux(Ubuntu/Debian)下装 PDO 和 MySQL 驱动
常见错误是只装了 php-pdo,却漏掉对应数据库驱动。MySQL 场景下必须同时装两个包:
php-pdo:提供 PDO 基础类和接口php-mysql或php-mysqlnd:提供pdo_mysql驱动(推荐php-mysqlnd,更现代、支持更多特性)
执行命令:
sudo apt update<br>sudo apt install php-pdo php-mysqlnd
装完别忘了重启 Web 服务:sudo systemctl restart apache2(Apache)或 sudo systemctl restart php*-fpm(如 php8.2-fpm)。
Windows(WAMP/XAMPP)手动启用 PDO
不是装新东西,而是改配置。找到你的 php.ini 文件(用 php --ini 查路径),编辑它:
- 取消注释这三行(删掉前面的分号
;):;extension=php_pdo.dll;extension=php_pdo_mysql.dll;extension=php_mysqli.dll(虽不是 PDO,但常一起用) - 确保
extension_dir指向正确的扩展目录,比如extension_dir = "ext"(相对路径)或绝对路径
改完保存,重启 Apache 或 Nginx。注意:不同 PHP 版本的 .dll 名可能带版本号(如 php_pdo_mysql_82.dll),若启用失败,去 ext/ 目录下确认真实文件名再填。
验证是否真能用了
写个最小测试脚本,别用框架或 ORM 包裹着测:
<?php<br>try {<br> $pdo = new PDO('mysql:host=localhost;dbname=test;charset=utf8mb4', 'root', '');<br> $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);<br> echo "PDO 连接成功 ✅";<br>} catch (PDOException $e) {<br> echo "连接失败 ❌: " . $e->getMessage();<br>}
关键点:
- DSN 中的
charset=utf8mb4强烈建议加上,避免中文乱码 - 如果报
Driver not found,说明pdo_mysql没启用;报Connection refused,则是数据库服务没开,跟 PDO 无关 - Windows 下若提示
Unable to load dynamic library,大概率是php.ini里写的.dll名字不对,或依赖的libmysql.dll缺失(XAMPP 一般自带,WAMP 可能需要手动放)
PDO 扩展本身很简单,难的是环境链路太长:PHP 编译选项、包管理器行为、ini 加载顺序、Web 服务进程是否重载配置……任何一个环节断了,new PDO() 就只是个报错。动手前先 php -m,动手后必 systemctl restart,别省这两步。
今天关于《PHP开启PDO扩展及使用方法详解》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
395 收藏
-
358 收藏
-
456 收藏
-
173 收藏
-
289 收藏
-
157 收藏
-
438 收藏
-
218 收藏
-
248 收藏
-
142 收藏
-
424 收藏
-
311 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 485次学习