Если страница будет не одна, вам понадобится:
1)
Front Controller как единая точка входа, плюс Router c правилами маршрутизации
2) Класс для соединения с бд, его обычно делают
Singleton'ом, чтобы не плодить экземпляры классов соединения.
3) Где-то надо будет хранить запросы к бд, чтобы инкапсулировать работу с базой, обычно это
Repository
4) Плюс всякие валидации форм, отправки почты, безопасность (тот же csrf, плюс защита от css)...
В общем выходит, что вам придется написать фреймворк... а они уже есть готовые. И в зависимости от вашего кода они уже протестированы и продуманы, и туда вложены тысячи человеко-часов. Так что мой вам совет, возьмите какой-нибудь фреймворк с порогом входа по-проще, Yii2 например очень прост и дружелюбен к разработчиками... Либо Django на Python, тоже не сильно мудреный..