In PHP 7 or greater, the MySQL extension has been removed completely and so, it is important to convert or upgrade from MySQL to MySQLi to keep your website updated
Table of Contents
I will discuss how to convert a MySQL extension into MySQLi. The first thing you should understand is that MySQL works as a resource whereas MySQLi works as a resource and an object. While you really do not need to know the technical differences, you must understand that these two are a lot different from each other.
The functions defined below uses the MySQLi Procedural and Object Oriented methods to convert all deprecated MySQL functions to MySQLi
To use these functions, simply copy all the codes below to your database connection file, update your database connection details and you are good to start using them
$mysqli = new mysqli( hostnameorservername, serverusername, serverpassword, databasenamed );
if ( !function_exists('mysql_connect') )
if ( !function_exists('mysql_select_db') )
That's it guys...
Recently, I had a to migrate a website that was running PHP 5.6 over to PHP 7. As usual, the first thing I did was to just copy the site over to the new host, and check the logs to see what the errors were. I saw a ton of messages like this:
I was really lucky! The main problem was that the site relied on database extensions for MySQL that have been deprecated since PHP 5.5, and were removed in PHP 7.
This turned out to be a pretty easy fix. You can check out the documentation for the new MySQLi improved extension over at PHP.net. Here are the steps that I took to rework the code so that the site functioned normally, again.
mysql_connect and mysql_select_db
The previous connection method was mysql_connect, called like this:
I replaced that with this:
Since I could pass in the database name, I could then
throw out an old call to
Aside from these problems with using the old MySQL extension, I noticed one other problem. There were a few messages in the PHP logs, like this:
This happened when the variable had never been defined before it was used. For example, I saw code like this:
The PHP notice message didn’t do much harm, but it was cluttering up the logs, making it hard to see the real problems, so getting rid of it was a good thing. As a general rule, I like to get rid of messages like this. That way, if something goes wrong, it’s easier to find new problems by checking the logs.
How can I convert MySQL database to MySQLi in PHP?
To open new connection to the database with MySQLi you need to create new instance of MySQLi class. $mysqli = new \mysqli($host, $user, $password, $dbName); $mysqli->set_charset('utf8mb4');
Can I use both MySQL and MySQLi?
It is possible to include both MySQL and MySQLi when connecting to a single database, but it is incredibly delicate and with large amounts of data being passed through it can get very messy and hard to control. it is best to use MySQLi in general in my opinion because it is much more secure and up to date.
How do I enable MySQLi extension?
how to enable MySQLi extension on web-server with cPanel?.
Step 1 : Log into WHM panel..
Step 2 : Go to Home » Software » EasyApache 4..
Step 3 : Click on “Customize”.
Step 4 : Go to PHP Extensions..
How do I know if MySQLi is installed?
Check if MySQLi is Installed You can do that by visiting a phpinfo() page that you made, or by running this command: php -m | grep mysqli.