PHP7升级后数据库连接失败及mysqli扩展缺失问题求助
解决PHP7升级后数据库驱动缺失的问题
首先明确说:这和MySQL版本关系不大,完全不需要急着升级MySQL!你的问题核心是PHP7里的MySQL相关扩展没启用,导致PDO连接和phpMyAdmin都找不到对应的驱动。
下面是一步步的解决办法:
1. 启用PDO MySQL和mysqli扩展
你需要修改XAMPP里的PHP配置文件php.ini:
- 找到XAMPP安装目录下的
php/php.ini文件(注意别找错,XAMPP可能有多个php.ini,要改Apache服务使用的那一个)。 - 打开文件后,搜索这两行,把前面的注释符号
;去掉:- 原内容:
;extension=pdo_mysql→ 修改为:extension=pdo_mysql - 原内容:
;extension=mysqli→ 修改为:extension=mysqli
(Windows系统下可能是extension=pdo_mysql.dll和extension=mysqli.dll,同样去掉前面的分号即可)
- 原内容:
- 顺便检查下
extension_dir配置项,确保它指向PHP的ext文件夹,比如extension_dir = "ext",XAMPP默认是正确的,要是路径不对就改成实际的ext文件夹路径。
2. 重启Apache服务
修改完配置后,一定要重启XAMPP里的Apache服务,让新的配置生效。
3. 验证扩展是否启用
创建一个phpinfo.php文件,放到XAMPP的htdocs目录里,内容是:
<?php phpinfo(); ?>
然后在浏览器里访问http://localhost/phpinfo.php,搜索pdo_mysql和mysqli:
- 如果能看到这两个模块的详细信息,说明扩展已经成功启用了。
- 要是找不到,检查是不是改了错误的php.ini文件——看phpinfo页面里的
Loaded Configuration File项,就能知道当前Apache用的是哪个php.ini,再去修改那个文件。
4. 优化你的PDO连接代码(可选)
你的连接代码本身没问题,但可以把DSN里的字符集参数加上,避免后续出现编码问题:
$conn = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8mb4", $username, $password);
utf8mb4比传统的utf8支持更多字符(比如emoji表情),更推荐使用。
额外排查点
如果以上步骤做完还是不行:
- 去XAMPP的
php/ext文件夹里看看,有没有php_pdo_mysql.dll和php_mysqli.dll(Windows)或者对应的.so文件(Linux),如果没有,说明你的PHP7安装不完整,重新下载对应版本的XAMPP修复安装即可。 - 关于mysqlnd:你的版本是5.0.12,PHP7默认依赖mysqlnd,只要扩展启用了,它会自动工作,不需要额外配置。
等你完成这些步骤,再运行脚本和打开phpMyAdmin,应该就不会再报驱动缺失的错误了。
内容的提问来源于stack exchange,提问作者user9324524
相关产品推荐
相关产品推荐

