CodeOn
CodeOn

Reputation: 91

Fatal error: Call to undefined function mysqli_connect() in... while connecting PHP 5.4.22 and MySQL 5.5 with Apache 2.4.7

I am trying to connect PHP 5.4.22 and MySQL 5.5 with Apache 2.4.7 as the web server. All three of these individually are working fine. However, when I try to connect PHP with MySQL I get the error:

"Fatal error: Call to undefined function mysqli_connect() in..."

db_connect.php code

$con = mysqli_connect("localhost","root","root","mylab_dev");

if (mysqli_connect_errno($con))
{
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$conn->close();

httpd.conf configuration:

ServerRoot "c:/Apache24"

#Listen 12.34.56.78:80
Listen 80

LoadModule php5_module "C:/php/php5apache2_4.dll" (Verified the existence of the physical file)

AddHandler application/x-httpd-php .php

DirectoryIndex index.php index.html
PHPIniDir c:/php

Modified php.ini-development file to php.ini

; extension_dir = "./"

; On windows:

extension_dir = "ext"

extension=php_mysql.dll  --> Uncommented

extension=php_mysqli.dll --> Uncommented

Set the date timezone accordingly

One thing I noticed but not sure if this is the reason, in the phpinfo() page I see the MySQL information, but I don't see anything which says mysqli(). Should I?

Upvotes: 8

Views: 34189

Answers (5)

Won Jun Bae
Won Jun Bae

Reputation: 5389

This will remove and replace the default PHP 5.5.9 packages that come with Ubuntu 14.04 with the versions from the ppa.

sudo aptitude install pkg-php-tools php5.6 php5.6-cgi php5.6-cli php5.6-dbg php5.6-common php5.6-curl php5.6-gd php5.6-imap php5.6-intl php5.6-mysql php5.6-pspell php5.6-sqlite3 php5.6-tidy php5.6-opcache php5.6-json php5.6-bz2 php5.6-mcrypt php5.6-readline php5.6-xmlrpc php5.6-enchant php5.6-xsl php-all-dev php7.0 php7.0-cgi php7.0-cli php7.0-common php7.0-dbg php7.0-curl php7.0-enchant php7.0-gd php7.0-imap php7.0-intl php7.0-ldap php7.0-mcrypt php7.0-readline php7.0-pspell php7.0-tidy php7.0-xmlrpc php7.0-xsl php7.0-json php7.0-sqlite3 php7.0-mysql php7.0-opcache php7.0-bz2 libapache2-mod-php7.0

https://www.23systems.net/2016/01/installing-php-5-6-x-7-0-x-ubuntu-14-04-virtualmin-5-0gpl-using-ppa/

Upvotes: 0

bitCatcher
bitCatcher

Reputation: 133

Find the path for php.ini by checking from the phpinfo(). Copy the php.ini file to the address shown in path.

Upvotes: 0

Nick
Nick

Reputation: 19

This connection for PHP 5.5/MySQL seems to work for me.

$host = "localhost";
$db = "mydatabse";    // Database name
$user = "my_username"; // User
$pass = "my_passxx"; // Password

// My PHP 5.5 method of connecting to the database
$mysqli = new mysqli("$host", "$user", "$pass", "$db");
if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
    exit();
}

Upvotes: 1

amresh tripathi
amresh tripathi

Reputation: 131

First of all, make sure you are editing the correct php.ini by checking from the phpinfo().

I wrote these instructions mainly for Windows users:

Edit your php.ini.

Check whether variable extension-dir is set properly. If not, specify the correct path as per your OS.

extension_dir = "C:\Program Files\php\ext"

Un-comment these lines by removing the ; (semi-colon):

extension=php_mysql.dll
extension=php_mysqli.dll

Upvotes: 4

dilbadil
dilbadil

Reputation: 316

I had the same error, and I fixed it with these steps:

sudo apt-get install php5-mysql
sudo service apache2 restart

Upvotes: 2

Related Questions