如何在cPanel中启用MySQLi?解决get_result()报错问题
我来帮你梳理几个实用的解决方向,毕竟cPanel的PHP扩展配置有时候会藏着一些容易忽略的细节:
确认PHP版本完全匹配
cPanel的PHP选择器里,每个PHP版本的扩展是独立管理的。比如你在选择器里给PHP 7.4启用了MySQLi,但你的网站实际运行的是PHP 8.1,那扩展等于没生效。建议在网站根目录新建一个phpinfo.php文件,内容如下:<?php phpinfo(); ?>访问这个文件后,先看页面顶部显示的PHP版本,再回到cPanel的PHP选择器,对应这个版本去启用MySQLi扩展,确保版本完全对应。
检查自定义PHP配置文件的干扰
如果你在网站根目录(比如public_html)放了php.ini或者.user.ini这类自定义配置文件,它们可能会覆盖cPanel的全局配置。打开这些文件,查找是否有extension=mysqli.so(Linux服务器,cPanel基本都是Linux)的配置项:- 如果没有,直接添加这一行;
- 如果有但前面带了分号
;(表示注释),把分号去掉,取消注释。
修改后保存,再刷新测试页面看看结果。
重启PHP-FPM进程
有时候启用扩展后,PHP的进程不会自动加载新配置,需要手动重启。在cPanel的“软件”分类下找PHP-FPM服务管理器,找到你的域名对应的PHP-FPM进程,点击“重启”按钮。如果找不到这个选项,直接联系主机商客服帮忙重启也是个快捷办法。换更准确的测试代码
你之前用的function_exists('mysqli')其实不太准确,因为mysqli是一个类,不是普通函数。换成下面的测试代码,结果会更可靠:<?php if (class_exists('mysqli')) { echo "MySQLi 类已加载<br />"; } else { echo "未找到 MySQLi 类<br />"; } if (function_exists('mysqli_connect')) { echo "mysqli_connect 函数可用<br />"; } else { echo "mysqli_connect 函数不可用<br />"; } ?>运行这个代码,能更精准判断扩展是否真的生效。
联系主机商技术支持
如果上面的方法都试过还是没解决,大概率是服务器端的配置问题——比如MySQLi扩展没有正确编译进PHP,或者存在权限限制。这时候直接联系主机商的技术支持,把你的问题、测试结果和启用扩展的截图发给他们,他们能快速定位并修复问题。
内容的提问来源于stack exchange,提问作者Simon

