(PECL mysqlnd-uh >= 1.0.0-alpha)
MysqlndUhConnection::close — Ferme une connexion existante à la base de données
$connection
, int $close_type
) : boolFerme une connexion existante à la base de données.
Note:
L'échec lors de l'appel de l'implémentation du parent peut causer une fuite mémoire, voire un crash de PHP. Ce comportement n'est pas à considérer comme un bogue. Gardez à l'esprit que les fonctions de la bibliothèque
mysqlnd
n'ont jamais été conçues pour être exposées à l'espace utilisateur.
connection
La connexion à fermer. Ne pas modifier !
close_type
La raison pour laquelle la connexion doit être fermée.
La valeur de close_type
est une constante parmi
MYSQLND_UH_MYSQLND_CLOSE_EXPLICIT
,
MYSQLND_UH_MYSQLND_CLOSE_IMPLICIT
,
MYSQLND_UH_MYSQLND_CLOSE_DISCONNECTED
ou
MYSQLND_UH_MYSQLND_CLOSE_LAST
. La dernière ne
devrait jamais survenir, tant que le comportement par défaut
de la bibliothèque mysqlnd
n'a pas été changé
par le plugin.
Retourne true
en cas de succès.
Sinon, retourne false
Exemple #1 Exemple avec 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));
/* ALERTE : vous devez appeler le parent */
$ret = parent::close($res, $close_type);
printf("%s retourne %s\n", __METHOD__, var_export($ret, true));
return $ret;
}
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->close();
?>
L'exemple ci-dessus va afficher :
proxy::close(array ( 0 => NULL, 1 => 0, )) close_type = MYSQLND_UH_MYSQLND_CLOSE_EXPLICIT proxy::close retourne true