Dipende come la apri, se usi PDO, essendo un oggetto unlink($oggetto) ma non chiudi davvero il server, ma solo sblocchi l'oggetto, e dovresti usare KILL di MySQL per chiudere almeno il thread aperto in quella pagina.
Ho trovato uno snippet di codice che fa questa cosa:
Codice PHP:
/*
* Close Mysql Connection (PDO)
*/
$pdo_mysql_close = function (PDO $connection) {
$query = 'SHOW PROCESSLIST -- ' . uniqid('pdo_mysql_close ', 1);
$list = $connection->query($query)->fetchAll(PDO::FETCH_ASSOC);
foreach ($list as $thread) {
if ($thread['Info'] === $query) {
return $connection->query('KILL ' . $thread['Id']);
}
}
return false;
};
$pdo_mysql_close($conn);
Ovviamente va utilizzato per chiudere la connessione dopo averla aperta.
Com msqli (improvved) la cosa è più semplice con mysqli_close().
Detto questo: quale che sia il metodo che usi, ti conviene rivedere tutto il codice nelle tue pagine e chiudere la connessione la dove ritieni che sia aperta.
Devo ammettere, che pur stando sempre io attento a queste cose, avevo pure letto da qualche parte che chiudendo la pagina ( quindi cambiando comunque pagina ) le connessioni si chiudevano automaticamente, mi pareva una caz.. ops una stupidaggine, ed evidentemente può esserlo davvero.
Posso capire che la Garbage Collection di PHP al cambio di pagina chiuda e scancelli le variabili PHP tenute aperte, ma mi pare strano che interagisca anche con altri server, come quello del database, e tu mi stai dando una conferma per ora.
Ciao.