CodeIgniter4项目报Undefined constant MYSQLI_STORE_RESULT错误如何解决
错误产生原因
该错误的根本原因是你当前运行环境的PHP 8.0.12未启用mysqli扩展:MYSQLI_STORE_RESULT是PHP mysqli扩展内置的系统常量,只有扩展正常加载时才会全局生效。你执行模型查询操作时才会触发CodeIgniter初始化数据库连接逻辑,加载MySQLi驱动时调用该常量无法识别,因此抛出未定义常量的500错误。
你在实例化模型前可以正常输出调试内容,是因为这一步还没有触发数据库连接相关的逻辑,不会调用MySQLi驱动的相关代码。
解决方法
不需要手动定义MYSQLI_STORE_RESULT常量,手动定义属于掩盖问题,后续仍会出现其他mysqli相关的功能异常,正确操作如下:
- 打开当前PHP版本对应的php.ini配置文件,找到
;extension=mysqli配置项,删除行首的分号(注释符)启用扩展。如果是Linux环境,可直接安装对应版本的mysqli扩展包(如php8.0-mysqli);Windows环境需确认PHP扩展目录下存在php_mysqli.dll文件。 - 修改配置后重启Web服务(Apache/Nginx)或PHP-FPM服务,可通过
phpinfo()函数查看mysqli扩展是否加载成功。 - 扩展启用后再验证数据库查询逻辑,即可正常执行。
内容的提问来源于stack exchange,提问作者D.B.
相关产品推荐
相关产品推荐

