mysqli::close

mysqli_close

(PHP 5, PHP 7)

mysqli::close -- mysqli_closeЗакрывает ранее открытое соединение с базой данных

Описание

Объектно-ориентированный стиль

bool mysqli::close ( void )

Процедурный стиль

bool mysqli_close ( mysqli $link )

Закрывает ранее открытое соединение с базой данных.

Открытые непостоянные соединения MySQL и результирующие наборы автоматически удаляются сразу по окончании работы PHP скрипта. Следовательно, закрывать соединения и очищать результирующие наборы не обязательно, но рекомендуется, так как это сразу же освободит ресурсы базы данных и память, занимаемую результатами выборки, что может положительно сказаться на производительности. Больше информации можно почерпнуть в разделе Освобождение ресурсов

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

См. mysqli_connect().

Примечания

Замечание:

mysqli_close() не закрывает постоянные соединения. Для получения подробностей см. руководство по persistent connections.

Смотрите также

  • mysqli::__construct() - Устанавливает новое соединение с сервером MySQL
  • mysqli_init() - Инициализирует MySQLi и возвращает ресурс для использования в функции mysqli_real_connect()
  • mysqli_real_connect() - Устанавливает соединение с сервером mysql
  • mysqli_free_result() - Освобождает память, занятую результатами запроса

add a note add a note

User Contributed Notes 2 notes

up
0
Francois
5 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
10 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