Backward compatibility for old mysql_* functions
Switch branches/tags
Clone or download
Permalink
Failed to load latest commit information.
spec
src
test
.gitignore
.scrutinizer.yml
.travis.yml
LICENSE
composer.json
phpspec.yml Refactor and testing with phpspec Sep 13, 2015
phpunit.php
phpunit.xml Fix travis configuration and code style Apr 13, 2016
readme.md

readme.md

Old mysql functions compatibility for PHP5.6 and PHP7

Build Status Scrutinizer Code Quality SensioLabsInsight

This library tries to provide backward compatibility with the deprecated mysql_* functions.

Caveat

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.

Requirements

PHP >= 5.6 with the PDO driver is required (PHP 7 is supported).

Installation

You can install mysql-compat via composer:

composer require mattbit/mysql-compat

Usage

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);

To do

  • 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
  • mysql_​set_​charset
  • mysql_​stat
  • mysql_​tablename
  • mysql_​thread_​id
  • mysql_​unbuffered_​query