Вы, безусловно, правильно используете объекты и правильно к ним обращаетесь. Вы - объект БД, по внешнему виду это единственный объект, это хорошо. И вы используете '->' для доступа к другим методам и свойствам объекта.
Но, похоже, вы реализуете функциональность, которая должна быть частью объекта БД. Например, с моим собственным классом БД я бы сделал что-то вроде этого
$db = DBObject::getInstance(); // The DB object is a singleton
$sql = "Select * from.... etc etc";
$result = $db->query($sql);
Что, я думаю, должно выполнить все, что вы пытались сделать. Объект БД должен знать, как самостоятельно подключаться к базе данных, выдавать свои собственные сообщения об ошибках и закрывать соединение в случае необходимости (чего, вероятно, нет). И такие вещи, как обработка кавычек, косая черта и обеспечение безопасности вашего запроса, также могут обрабатываться внутри объекта БД.
Кроме того, процедура, которую вы пытаетесь выполнить, может легко представлять собой отдельный класс (например, PageRenderer). Но здесь вы создали много функций, которые используют другие объекты.
Но трудно дать вам прямой ответ. Да, вы делаете это правильно, но вы, кажется, делаете слишком много.