Для того чтобы проверить существет аккаунт с таким email приходиться делать одну функцию
Используй самый простой паттерн - facade.
Создай класс под работу с базой, создавай методы, а не функции и обращайся к ним, а ещё лучше создавай по классу-фасаду на сущность: User, Chat, News и т.д.
2. В каждом из функции все повторяется кроме самого запроса, (и везде try-catch еще), можно как то это оптимизировать ?
Оберни в метод, принимай строку запроса в параметрах.