必须启用PDO和MySQLi扩展,否则new PDO()或new mysqli()会报“Class 'PDO' not found”等错误;需通过php -m验证pdo、pdo_mysql、mysqli三项存在,Windows下启用php_pdo.dll和php_pdo_mysql.dll,Linux下启用pdo.so和pdo_mysql.so,并确保php.ini路径正确、服务已重启。

要在PHP环境中成功连接MySQL数据库,必须先确保PDO和MySQLi扩展已正确启用,否则调用new PDO()或new mysqli()会直接报错“Class 'PDO' not found”或“Class 'mysqli' not found”。这一步是所有数据库操作的前提,跳过将导致后续代码完全无法运行。
确认PHP是否已加载PDO和MySQLi扩展
打开终端或命令行,执行:php -m | grep -E "pdo|mysqli"。若输出中包含pdo、pdo_mysql、mysqli三项,则说明扩展已加载;缺少任一模块,需进入php.ini配置阶段。
Windows用户注意:若使用WAMP/XAMPP,可通过控制面板图形界面勾选扩展;Linux/macOS用户必须手动编辑php.ini文件。
启用PDO扩展(含pdo_mysql驱动)
找到当前生效的php.ini路径:新建一个PHP文件,写入<?php phpinfo(); ?>,浏览器访问后搜索“Loaded Configuration File”,定位到该ini文件。
立即学习“PHP免费学习笔记(深入)”;
用文本编辑器打开php.ini,查找以下两行:
;extension=php_pdo.dll → 删除开头的分号,改为 extension=php_pdo.dll
;extension=php_pdo_mysql.dll → 同样去掉分号,改为 extension=php_pdo_mysql.dll
【Windows下必须同时启用这两个dll,缺一不可;Linux/macOS对应的是.so文件,如extension=pdo.so和extension=pdo_mysql.so】
保存后重启Web服务器(Apache/Nginx)或PHP-FPM服务。再次运行php -m验证pdo与pdo_mysql是否在列表中。
启用MySQLi扩展
方法一:修改php.ini启用动态库
在php.ini中查找;extension=mysqli,取消注释,改为extension=mysqli。PHP 7.4+版本通常已默认启用,但部分精简版环境仍需手动开启。
方法二:检查扩展目录是否存在mysqli.so/.dll
执行php -r "echo PHP_EXTENSION_DIR;"获取扩展目录路径,进入该目录确认存在mysqli.so(Linux/macOS)或php_mysqli.dll(Windows)。若缺失,说明PHP编译时未包含该模块,需重装PHP或更换完整包。
启用后无需额外配置即可使用面向对象方式new mysqli(),但【务必在连接后调用$mysqli->set_charset('utf8mb4'),否则中文插入可能乱码】。
验证扩展启用效果
第一步:创建测试文件test_db_ext.php,内容如下:
<?php<br>var_dump(class_exists('PDO'));<br>var_dump(class_exists('mysqli'));<br>var_dump(extension_loaded('pdo_mysql'));<br>var_dump(extension_loaded('mysqli'));<br>?>
第二步:通过浏览器或CLI执行该文件。四行输出必须全部为bool(true),才算完成扩展启用。
第三步:若任一为false,返回上一步检查php.ini路径是否正确、分号是否彻底删除、Web服务器是否真正重启——常见错误是改了错误的php.ini(如CLI用一套,Web用另一套)。



















