Codeigniter: fatal error call to undefined function mysqli_init()

Bsos picture Bsos · Nov 9, 2015 · Viewed 93k times · Source

I just changed my server and experience these errors below:

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:

Website is in Codeigniter. It works on one server very well and on the local machine too. But when I upload that website at the new server I have that errors. Of course I changed important parameters like database connection, base_url() etc.

I was suspicious about database, but I have created a new database and user etc. and changed connection info.

Why does this happen? It will be helpful to know if it is a bug at the server or at the website. Also when I create some index.html with some test code everything is fine.

Answer

jpganz18 picture jpganz18 · Feb 2, 2016

It is not a bug in your application, it is just a missing driver, so, you have couple of options...

Go to your php init and uncomment the following:

extension=php_mysqli.dll

If not, try installing it at your server, it varies depending on your distribution.

Try installing php5-mysqlnd

If you cannot do it by hosting restrictions then just move to mysql driver (wont need to change other configurations or queries in CodeIgniter or anything else...)

like this (at your config file)

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