Note with Francis' example, using the function name link() will throw an error at runtime as it is already a function within the language. see: http://php.net/manual/en/function.link.php
(PHP 5, PHP 7)
mysqli::close -- mysqli_close — Cierra una conexión previamente abierta a una base de datos
Estilo orientado a objetos
Estilo por procedimientos
Cierra una conexión abierta previamente a base de datos.
Las conexiones de MySQL no persistentes y los conjuntos de resultados son automáticamente destruidos cuando un script de PHP finaliza su ejecución. Por tanto, aunque el cierre explícito de conexiones abiertas y la liberación de conjuntos de resultados sean opcionales, se recomienda hacerlos. Así, se devolverán inmediatamente los recursos a PHP y a MySQL, lo que puede mejorar el rendimiento. Para información detalla, véase la liberación de recursos
link
Sólo estilo por procediminetos: Un identificador de enlace devuelto por mysqli_connect() o mysqli_init()
Devuelve true
en caso de éxito o false
en caso de error.
Veasé mysqli_connect().
Nota:
mysqli_close() no cerrará las conexiones persistentes. Para más detalles, véase la página del manual sobre conexiones persistentes.
Note with Francis' example, using the function name link() will throw an error at runtime as it is already a function within the language. see: http://php.net/manual/en/function.link.php
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)
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.