Codeigniter:对未定义函数的致命错误调用 mysqli_init()

2022-08-30 16:50:01

我刚刚更换了服务器,并遇到以下错误:

Fatal error: Call to undefined function mysqli_init() in /home/blacktwitter/public_html/system/database/drivers/mysqli/mysqli_driver.php on line 126
A PHP Error was encountered

Severity: Warning

Message: Cannot modify header information - headers already sent by (output started at /home/blacktwitter/public_html/system/database/drivers/mysqli/mysqli_driver.php:126)

Filename: core/Common.php

Line Number: 564

Backtrace:

A PHP Error was encountered

Severity: Error

Message: Call to undefined function mysqli_init()

Filename: mysqli/mysqli_driver.php

Line Number: 126

Backtrace:

网站在Codeigniter中。它可以在一台服务器上很好地工作,也可以在本地计算机上工作。但是当我在新服务器上上传该网站时,我遇到了错误。当然,我更改了重要的参数,如数据库连接,base_url()等。

我对数据库持怀疑态度,但我创建了一个新的数据库和用户等,并更改了连接信息。

为什么会发生这种情况?了解它是服务器还是网站上的错误将很有帮助。另外,当我创建一些索引时.html使用一些测试代码,一切都很好。


答案 1

它不是应用程序中的错误,它只是一个缺少的驱动程序,所以,你有几个选择......

转到您的 php 初始化并取消注释以下内容:

extension=php_mysqli.dll

如果没有,请尝试将其安装在您的服务器上,它因您的发行版而异。

尝试安装php5-mysqlnd

如果您无法通过托管限制来做到这一点,那么只需移动到mysql驱动程序(不需要在CodeIgniter或其他任何内容中更改其他配置或查询...)

像这样(在你的配置文件中)

$db['default']['dbdriver'] = 'mysql'; (you might have mysqli now)

答案 2

我刚刚在 一个 上遇到了这个问题,安装与 .ubuntu16.04php7.1Codeigniter 3

解决方案很简单(如果很难找到!

sudo apt-get install php7.0-mysql

我意识到目录中缺少的文件。不知道它是如何发生的,但这对我来说很有效。mysql*.inietc/php/7.1/mods-available

如果您使用的是 7.2,只需键入sudo apt-get install php7.2-mysql


推荐