You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级PHP至7.1.16后CodeIgniter站点报错:Call to undefined function mysqli_init()

解决PHP 7.1.16下CodeIgniter报Call to undefined function mysqli_init()的问题

这个错误我碰到过好多次了——核心原因就是你的PHP 7.1.16环境没有启用mysqli扩展。在PHP 5.x版本里,mysqli很多时候是默认启用的,但升级到7.x系列后,这个扩展经常需要手动安装/启用,尤其是通过包管理器重新安装PHP的情况。

接下来给你一步步的解决方法:

1. 先确认mysqli扩展是否真的缺失

在你的站点根目录(比如/home/public_html/codeigniter_demo/)创建一个临时文件phpinfo.php,内容如下:

<?php
phpinfo();
?>

访问这个文件(比如http://你的域名/phpinfo.php),然后在页面里搜索"mysqli"。如果找不到任何关于mysqli的模块信息,那肯定是扩展没装或者没启用。

2. 安装并启用mysqli扩展

根据你的服务器系统类型操作:

如果你用的是Debian/Ubuntu系统

  • 安装PHP 7.1的mysqli扩展:
    sudo apt-get update
    sudo apt-get install php7.1-mysqli
    
  • 重启Web服务器让配置生效:
    # Apache用户
    sudo systemctl restart apache2
    # Nginx用户
    sudo systemctl restart nginx
    

如果你用的是RHEL/CentOS系统

  • 安装扩展(注意包名可能因你的软件源略有不同,比如用webtatic源的话是php71w-mysqli):
    sudo yum install php7.1-mysqli
    
  • 重启Apache:
    sudo systemctl restart httpd
    

3. 检查php.ini配置(可选,但保险)

有时候安装了扩展但php.ini里没开启,你可以通过phpinfo页面找到Loaded Configuration File项,找到你的php.ini路径,打开它并确保以下行没有被注释(去掉前面的;):

extension=mysqli.so

修改后记得重启Web服务器。

4. 确认CodeIgniter的数据库配置

最后再核对下application/config/database.php里的数据库驱动设置,确保:

$db['default']['dbdriver'] = 'mysqli';

这个在你之前PHP 5.4正常运行时应该是对的,但升级后偶尔可能因为配置文件权限问题被改动,确认下更稳妥。

做完这些步骤后,再访问你的CodeIgniter站点,这个错误应该就消失了。

内容的提问来源于stack exchange,提问作者bhayashree

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:14:54