欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

php 關閉mysqli

吳朝志1年前6瀏覽0評論

php中的mysqli是一個非常常用的功能,它能夠實現(xiàn)與MySQL數(shù)據(jù)庫的交互。一旦開啟了mysqli連接,則需要按照正確的流程來關閉mysqli連接。本文主要介紹如何關閉mysqli連接以及具體的方法,在此我們詳細說明如何正確的關閉mysqli連接。

我們先來看一個例子:

$mysqli = new mysqli('localhost', 'username', 'password', 'database');
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$mysqli->query("SELECT * FROM table");
$mysqli->close();

上面代碼連接了一個MySQL數(shù)據(jù)庫,query語句執(zhí)行后,我們調(diào)用$mysqli->close()來關閉mysqli連接。這里需要說明的是,當您調(diào)用mysqli連接時,mysqli連接將會自動關閉,只有在某些情況下(如上述代碼中)才需要手動關閉mysqli連接。

在許多web應用程序中,關閉mysqli連接通常是由于性能方面的考慮。一個打開的mysqli連接會占用服務器資源,因此,在不使用mysqli連接時,應該關閉mysqli連接以釋放服務器的資源。

在一些長時間運行,并且同時需要大量mysqli連接的php腳本中,在腳本的代碼最后部分將不需要的mysqli連接全部關閉,也是一種非常好的編程習慣。

關于mysqli需要關閉連接的更深層次的原因,可以參考php官方文檔。

下面我們講一下如何關閉mysqli連接:

1. mysqli_close()方法

mysqli_close()方法是關閉mysqli連接的常用方法,它可以立即關閉已打開的mysqli連接。

$mysqli = new mysqli('localhost', 'username', 'password', 'database');
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$mysqli->query("SELECT * FROM table");
mysqli_close($mysqli);

調(diào)用mysqli_close()方法后,mysqli連接已經(jīng)被關閉。在這個例子中,mysqli連接將在程序中最后的部分進行關閉。

2. __destruct()方法

__destruct()是一個魔術方法,通常用來關閉對象。

class MySQLiConnect {
public $mysqli = null;
public function __construct() {
$this->mysqli = new mysqli('localhost', 'username', 'password', 'database');
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
}
public function __destruct() {
if($this->mysqli != null) {
$this->mysqli->close();
}
}
}
$connection = new MySQLiConnect();
$connection->mysqli->query("SELECT * FROM table");

__destruct()方法可以在一個mysqli對象被銷毀時被自動調(diào)用。它可以被用來關閉mysqli連接,因為mysqli連接不再則需要。在這個例子中,當$connection對象銷毀時,mysqli連接將自動關閉。

3. mysqli_multi_query()方法和mysqli_next_result()方法

mysqli_multi_query()方法可以執(zhí)行多條查詢,它運行的第一條查詢必須是一種查詢語句,而隨后的查詢可以是查詢語句、不需要返回數(shù)據(jù)的語句(如INSERT和UPDATE語句)等。如果在使用mysqli_multi_query()方法時將多條語句序列執(zhí)行,那么可以使用mysqli_next_result()方法來保持結果的窗口計數(shù)。

$mysqli = new mysqli('localhost', 'username', 'password', 'database');
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$query = "SELECT * FROM table; SET @var = 1; DELETE FROM table WHERE id = @var;";
if ($mysqli->multi_query($query)) {
do {
$mysqli->next_result();
} while ($mysqli->more_results());
$mysqli->close();
}

在這個例子中,我們使用mysqli_multi_query()方法,在查詢中先執(zhí)行了一個SELECT語句和一個SET語句,然后執(zhí)行一個DELETE語句。每一次使用mysqli_multi_query()方法調(diào)用時都需調(diào)用mysqli_next_result()方法把結果偏移量定位在下一個序列結果集。mysqli連接在mysqli_next_result()方法循環(huán)執(zhí)行后會被關閉。最后使用mysqli_more_results()方法檢查查詢結果是否還有序列結果集。

總結起來,關閉mysqli連接是非常重要的——它能夠釋放服務器資源,提高性能。在php代碼中,需要使用mysqli連接時,請記得及時關閉。