Home  >  Article  >  Database  >  About the difference between mysql and mysqli

About the difference between mysql and mysqli

迷茫
迷茫Original
2017-03-26 11:48:371106browse

Mysqli connection is a permanent connection, while MySQL is a non-permanent connection.

mysql connection: Every time it is used for the second time, a new process will be reopened.

mysqli connection: always use the same process.

Benefits: This can greatly reduce the pressure on the server side.

Of course, if mysql also needs a permanent connection, you can use the mysql_pconnect() function

Process-oriented use of mysqli:

$conn = mysqli_connect(‘localhost’, ‘root’, ’123′, ‘db_test’) or (‘error’);
$sql = “select * from db_table”;
$query = mysqli_query($conn,$sql);
while($row = mysqli_fetch_array($query)){
echo $row['title'];
}

Object-oriented use of mysqli :

$conn = mysqli(‘localhost’, ‘root’, ’123′, ‘db_test’);
$sql = “select * from db_table”;
$query = $conn->query($sql);
while($row = $query->fetch_array()){
echo $row['title'];
}
  • mysql_connect and mysql_pconnect and mysqli_connect:

The connection opened by mysql_pconnect will not be closed (even if mysql_close is called, it will not be closed because of the It is invalid),

is similar to the connection buffer pool. If there is a connection to the same database from the same user name

on the same machine next time, PHP will automatically use the last connection. established connection without the need to re-establish one.

Advantages: It saves the overhead of establishing a connection with the database each time.

Disadvantages: It needs to waste some memory and occupy some connections.

So if the user visits When it is large, errors will occur. You need to change the max_connections parameter of mysql to a larger value, or use mysql_connect() to solve the problem.

Simply speaking, MySQL_pconnect is used to establish a continuous connection between PHP and MySQL.

Generally, the execution mode of PHP is to initialize all resources when the script starts executing, and release all resources after the script is finished. Resources.

The MySQL_pconnect method is not like this. MySQL_connect re-establishes a relationship with the sql server through tcp etc.

every time, and each connection consumes a lot of server resources.

When using pconnect, when there is a request to connect to MySQL, php will check whether the same connection (connected to the same MySQL server with the same username and password) has been established before.

If If there is, use this connection directly. It is worth noting that the concept of the same connection is for the process.

Different process connections MySQL_pconnect will establish multiple connections.

connect and pconnect will not bring about functional differences, only performance differences.

Generally, php has two operating modes, one is to run as cgi, and the other is to run as an apache module.

When it is used as cgi, connect is no different from pconnect, because every time cgi is run, it will be destroyed and the resources are cleaned up.

When php is run as an apache module, you can use the continuous connection to the database, but There may be potential problems,

See the PHP manual if you are using cgi installation method. pconnection will never take effect.

The biggest disadvantage of long connections is that if a user is locked, the current process will be permanently locked.

If your setting in apache is that the process will never be destroyed, then.........

I said it and recorded so much,

  1. That is to say, try to use mysql_connect, because it will automatically interrupt after the operation is completed, which is in line with the programming style.

  2. You can also use mysql_connect and mysql_pconnect together, just like a link buffer pool,

  3. That is to say, create a mysql_connect and mysql_pconnect the type.

  4. Of course, if downward compatibility is not considered, it is best to use mysqli_connect, because mysqli itself is a permanent connection.

The above is the detailed content of About the difference between mysql and mysqli. For more information, please follow other related articles on the PHP Chinese website!

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