Cita: No entiendo porque no funciona el include fuera de las funciones y tengo que estar metiendo la conexion en cada funcion
Bueno, seguramente no lo entiendes porque jamás has leído un manual de PHP.
Te explico: el problema que experimentas se le conoce como alcance, contexto o
scope, etc.
Existen tanto variables locales como globales, ambos son contextos muy diferentes y no se comparten entre si.
Las variables que declaras fuera de clases y/o funciones son consideradas globales, caso contrario son locales.
Las funciones y/o métodos de una clase no pueden acceder al contexto global de manera directa.
Consulta el siguiente manual:
http://php.net/manual/es/language.variables.scope.php