Home  >  Article  >  Backend Development  >  Analysis of the difference between mysql and mysqli

Analysis of the difference between mysql and mysqli

WBOY
WBOYOriginal
2016-07-25 08:56:231086browse
This article introduces some differences in usage between mysql and mysqli in php. Friends in need can refer to it.

The difference between mysql and mysqli: Mysql and Mysqli(Mysql Improved) are two library functions (or Extension) in the PHP which is used to acces mysql database.Mysqli is the improved version of mysql which support OOPS. The mysqli extension allows you to access the functionality provided by MySQL 4.1 and above.

mysql is a non-persistent connection function and mysqli is a permanent connection function. Mysql will open a connection process for each connection, and running mysqli multiple times will use the same connection process, thereby reducing server overhead. If you use new mysqli('localhost', usenamer', 'password', 'databasename'); it always reports an error, Fatal error: Class 'mysqli' not found in... Then check whether mysqli is turned on. The mysqli class is not enabled by default. You need to change php.ini under win and remove the ";" in front of php_mysqli.dll. Mysqli must be compiled into it under Linux.

In relation to PHP programming language, MySQL is the old database driver, and MySQLi is the Improved driver. MySQLi takes advantage of the newer features of MySQL 5. Lifted verbatim from the php.net site: - Object-oriented interface - Support for Prepared Statements -Support for Multiple Statements - Support for Transactions - Enhanced debugging capabilities - Embedded server support

You have the choice of using mysql, mysqli, or PDO essentially.

If you're simply looking for a relational database, you need look no further than MySQL, though there are many options available. You can use DBD, Postgres, MySQL, MSSQL, sqlite, etc etc etc...

HTH Source(s): http://www.php.net/manual/en/mysqli.over…

Mysqli usage: $mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db'); Mysql usage: $link = mysql_connect('example.com:3307', 'mysql_user', 'mysql_password'); When dealing with Chinese garbled characters, set the connection character set after $link = mysql_connect('example.com:3307', 'mysql_user', 'mysql_password');: mysql_query("set names utf8"); Note: cannot be written as utf-8.

Set the database to be operated on: mysql_select_db("my_db"); When using mysqli, the database name is used as a parameter of the mysqli construction method, so setting the connection character set does not work at this time.



Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn