php[world] 2018

mysqli::close

mysqli_close

(PHP 5, PHP 7)

mysqli::close -- mysqli_close事前にオープンしているデータベース接続を閉じる

説明

オブジェクト指向型

bool mysqli::close ( void )

手続き型

bool mysqli_close ( mysqli $link )

既に開いているデータベース接続を閉じます。

持続的でない MySQL 接続や結果セットは、PHP スクリプトの実行が終了する時点で自動的に破棄されます。 そのため、オープンした接続をクローズしたり結果セットを開放したりすることは必須ではありませんが、 そうしておくことを推奨します。 その時点ですぐに PHP や MySQL にリソースを返せ、パフォーマンスの向上につながるからです。 関連する除法は リソースの開放を参照ください。

パラメータ

link

手続き型のみ: mysqli_connect() あるいは mysqli_init() が返すリンク ID。

返り値

成功した場合に TRUE を、失敗した場合に FALSE を返します。

mysqli_connect() を参照ください。

注意

注意:

mysqli_close() は、持続的な接続を閉じません。 詳細な情報は、マニュアルの 持続的データベース接続を参照ください。

参考

add a note add a note

User Contributed Notes 2 notes

up
0
Francois
2 months ago
Since a lot of manual examples recommend to use a variable to initiate your connection, it is interesting to know that mysqli_close() will unset that variable, causing further connection attempts to fail.
ex:

$link = mysqli_connect($host, $user, $pw);

if ($link) {
    // Database is reachable
    mysqli_close($link);
}

if ($link) {
    // Database unreachable because $link = NULL
}

Easiest solution for me is to initiate connection through a function.
ex:

function link() {
    global $host;
    global $user;
    global $pw;
    global $link;
    $link = mysqli_connect($host, $user, $pw);
}

link();
// Database is reachable
mysqli_close($link)
link();
// Database is reachable
mysqli_close($link)
up
-19
php at dafydd dot com
9 years ago
I've had situations where database connections appeared to persist following php execution. So, now, my __destructor function explicitly contains a $cxn->close(). It hurts nothing, and helps avoid memory leaks.
To Top