Mam wrażenie, że miałeś kod proceduralny i zamiast na funkcje, podzieliłeś go na klasy. To totalnie nie wygląda jak kod w OOP.
Np. CheckValue nie ma sensu. Posiada tylko jedną metodę, która służy wyłącznie do walidacji loginu. Niemniej ta walidacja jest zrobiona w sposób błędny. Walidator nie ma prawa wiedzieć, skąd dane, które otrzymuje, pochodzą. W tym wypadku walidator sam tworzy połączenie z bazą i wyciąga stamtąd login. Ba, klasa odpowiedzialna za łączenie się z bazą od razu przeprowadza walidację, co tym bardziej pozbawia sensu walidator w obecnym kształcie.
Dodatkowo wszystko jest tight coupled – klasy mają sztywno wpisane zależności. Powinieneś stosować Dependency Injection, zatem nie:
public function __construct()
{
$this->LoginDB = new LoginDB();
}
a:
public function __construct(LoginDB $loginDB)
{
$this->loginDB = $loginDB;
}