MysqlndUhConnection::close

(PECL mysqlnd-uh >= 1.0.0-alpha)

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

Описание

public MysqlndUhConnection::close ( mysqlnd_connection $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($rettrue));
   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

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