(PECL mysqlnd-uh >= 1.0.0-alpha)
MysqlndUhConnection::close — Закрывает ранее открытое соединение с базой данных
$connection
, int $close_type
) : boolЗакрывает ранее открытое соединение с базой данных.
Замечание:
Если не вызвать родительскую реализацию, это может привести к утечке памяти или крушению PHP. Это не считается ошибкой. Пожалуйста, имейте в виду, что библиотечные функции
mysqlnd
никогда не были предназначены для доступа к пользовательскому пространству.
connection
Дескриптор подключения Mysqlnd. Не модифицируйте!
close_type
Почему соединение должно быть закрыто. Значение
close_type
может быть одним из
MYSQLND_UH_MYSQLND_CLOSE_EXPLICIT
,
MYSQLND_UH_MYSQLND_CLOSE_IMPLICIT
,
MYSQLND_UH_MYSQLND_CLOSE_DISCONNECTED
или
MYSQLND_UH_MYSQLND_CLOSE_LAST
. Последнее
никогда не должно быть замечено, если только поведение по умолчанию
библиотеки mysqlnd
не было изменено плагином.
Возвращает true
в случае успешного выполнения.
В противном случае возвращает false
Пример #1 Пример использования MysqlndUhConnection::close()
<?php
function close_type_to_string($close_type) {
$mapping = array(
MYSQLND_UH_MYSQLND_CLOSE_DISCONNECTED => "MYSQLND_UH_MYSQLND_CLOSE_DISCONNECTED",
MYSQLND_UH_MYSQLND_CLOSE_EXPLICIT => "MYSQLND_UH_MYSQLND_CLOSE_EXPLICIT",
MYSQLND_UH_MYSQLND_CLOSE_IMPLICIT => "MYSQLND_UH_MYSQLND_CLOSE_IMPLICIT",
MYSQLND_UH_MYSQLND_CLOSE_LAST => "MYSQLND_UH_MYSQLND_CLOSE_IMPLICIT"
);
return (isset($mapping[$close_type])) ? $mapping[$close_type] : 'unknown';
}
class proxy extends MysqlndUhConnection {
public function close($res, $close_type) {
printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
printf("close_type = %s\n", close_type_to_string($close_type));
/* ЗАМЕЧАНИЕ: вы должны вызвать родителя */
$ret = parent::close($res, $close_type);
printf("%s возвращает %s\n", __METHOD__, var_export($ret, true));
return $ret;
}
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->close();
?>
Результат выполнения данного примера:
proxy::close(array ( 0 => NULL, 1 => 0, )) close_type = MYSQLND_UH_MYSQLND_CLOSE_EXPLICIT proxy::close возвращает true