This library attempts to create a drop-in replacement for ext/mysql on PHP 7 using mysqli.
For the most part, it should just work.
This library is meant to be a stop-gap. It will be slower than using the native functions directly.
You should switch to ext/pdo_mysql
or ext/mysqli
, and migrate to prepared queries to ensure you are securely interacting with your database.
To install, either add dshafik/php7-mysql-shim
to your composer.json
:
$ composer require dshafik/php7-mysql-shim
or, clone/download this repo, and include lib/mysql.php
in your project.
When installed with composer, the library is included automatically.
Once the lib/mysql.php
file is included, it will create mysql_*
functions if they don't already exist. You may safely include the file in a PHP 5.3.6+ project, it will do nothing if the mysql extension is already available.
is_resource()
and get_resource_type()
on MySQL connections and results will fail as these are now their mysqli
equivalents.ext/mysqli
, and others are E_USER_WARNING
instead of E_WARNING
.mysqli.*
INI entries instead of mysql.*
(e.g. mysqli.default_user
instead of mysql.default_user
)mysql_*
functions, the default values from the corresponding mysqli.*
settings from php.ini
file will be used (e.g. mysqli.default_host
, mysqli.default_user
, mysqli.default_pw
)Instead of using this drop-in-replacement library you should consider refactoring your code from mysql
to e.g. mysqli
. This process can be automated with e.g. https://stackoverflow.com/a/61597957