Это вам вопрос про работу шаблонизаторов. По сути делаете метод, который "рендерит" вашу страницу из кусков шаблона (шапка, футер, при надобности сайдбар, комменты и так далее). В ваших кусках есть заготовленные выводы переменных (тайтлы и так далее). А потом вызываете метод render($data, $template);
где $data у вас массив данных, который render() расфасует по вашему $temlate который он соберет по заложенному вами принципу
Ну это если примитивно. А файлы хранить в бд не рекомендуется (за некоторыми исключениями)
UPD
Мне в свое время помогла эта статья
ТЫЦ