Je pense que c'est parce que lorsque vous fermez la connexion à la base de données la première fois, vous oubliez de faire :
unset($connection);
Et puis, lorsque vous essayez à nouveau de vous connecter à la base de données, elle se bloque car elle est toujours définie sur la connexion fermée.