MySQL and MySQLi are PHP database extensions implemented by using PHP extension framework. PHP database extensions are used to write PHP code for accessing the database. They expose database API to provide interfaces to use database functions.
MySQL extension is deprecated and will not be available in future PHP versions. It is recommended to use the MySQLi extension with PHP 5.5 and above.
MySQL MySQLi Difference
There are too many differences between these PHP database extensions. These differences are based on some factors like performance, library functions, features, benefits, and others.
|MySQL extension added in PHP version 2.0. and deprecated as of PHP 5.5.0.||MySQLi extension added in PHP 5.5 and will work on MySQL 4.1.3 or above.|
|Does not support prepared statements.||MySQLi supports prepared statements.|
|MySQL provides the procedural interface.||MySQLi provides both procedural and object-oriented interface.|
|MySQL extension does not support stored procedure.||MySQLi supports store procedure.|
|MySQL extension lags in security and other special features, comparatively.||MySQLi extension is with enhanced security and improved debugging.|
|Transactions are handled by SQL queries only.||MySQLi supports transactions through API.|
|Extension directory: ext/mysql.||Extension directory: ext/mysqli.|
Though MySQL extension is deprecated, for backward compatibility it will be available. But do not use if you are starting something new and recommend to migrate the older from mysql to mysqi extension.
Other MySQLi Advantages
- MySQLi function musqli_query() allows to enforce error prone queries and prevents bugs like SQL injection.
- Using MySQLi data fetch, we can get buffered or unbuffered based on server resource size.
- MySQLi API allows executing multiple queries with single expression using multi_query() function.