This library tries to provide backward compatibility with the deprecated mysql_* functions.
You really should not use this unless strictly needed: it's much better to refactor the existing code to use PDO and prepared statements directly or an ORM like Eloquent.
Although library provides an hackish replacement for mysql_real_escape_string, you ought to refactor your code to use prepared statements.
PHP >= 5.6 with the PDO driver is required (PHP 7 is supported).
You can install mysql-compat via composer:
composer require mattbit/mysql-compat
The mysql_-equivalent functions are available through the facade class Mattbit\MysqlCompat\Mysql.
require __DIR__ . '/vendor/autoload.php';
use Mattbit\MysqlCompat\Mysql;
Mysql::connect('host', 'user', 'password');
Mysql::selectDb('my_db');
$result = Mysql::query('SELECT * FROM my_table');
$row = Mysql::fetchArray($result);Note that the static methods are named in a camel-case like version of the original functions, e.g. mysql_fetch_array becomes Mysql::fetchArray.
If you are using PHP7 and want to re-define the old global functions and constants without touching existing code, you can use the Mysql::defineGlobals method:
require __DIR__ . '/vendor/autoload.php';
Mattbit\MysqlCompat\Mysql::defineGlobals();
mysql_connect('host', 'user', 'password');
mysql_select_db('my_db');
$result = mysql_query('SELECT * FROM my_table');
$row = mysql_fetch_array($result, MYSQL_BOTH);If you need more control over the connections, the database manager allows you to access the underlying objects.
require __DIR__ . '/vendor/autoload.php';
use Mattbit\MysqlCompat\Mysql;
$manager = Mysql::getManager();
// Create a connection by specifying a custom DSN.
$connection = $manager->connect('mysql:dbname=mydatabase;host=myhost', 'user', 'pass');
// You can access the underlying PDO object
$pdo = $connection->getPdo();
// The rest of the code will use the last connection registered in the manager
$res = Mysql::query('SELECT * FROM my_table');
// But you can specify explicitly a connection as well
$res = Mysql::query('SELECT * FROM my_table', $connection);This is particularly useful if you need to customize connection's DSN (e.g. to specify the charset):
$manager = Mysql::getManager();
$manager->connect('mysql:dbname=database;host=hostname;charset=customCharset', 'user', 'password');
// This will automatically use the connection above, with the right charset.
$res = Mysql::query('SELECT * FROM my_table');-
mysql_affected_rows -
mysql_client_encoding -
mysql_close -
mysql_connect -
mysql_create_db -
mysql_data_seek(not supported) -
mysql_db_name -
mysql_db_query -
mysql_drop_db -
mysql_errno -
mysql_error -
mysql_escape_string -
mysql_fetch_array -
mysql_fetch_assoc -
mysql_fetch_field -
mysql_fetch_lengths -
mysql_fetch_object -
mysql_fetch_row -
mysql_field_flags -
mysql_field_len -
mysql_field_name -
mysql_field_seek -
mysql_field_table -
mysql_field_type -
mysql_free_result -
mysql_get_client_info -
mysql_get_host_info -
mysql_get_proto_info -
mysql_get_server_info -
mysql_info -
mysql_insert_id -
mysql_list_dbs -
mysql_list_fields -
mysql_list_processes -
mysql_list_tables -
mysql_num_fields -
mysql_num_rows -
mysql_pconnect -
mysql_ping -
mysql_query -
mysql_real_escape_string -
mysql_result -
mysql_select_db -
(see issue #7 for information)mysql_set_charset -
mysql_stat -
mysql_tablename -
mysql_thread_id -
mysql_unbuffered_query

