Bonsoir.
Ton problème vient de ta fonction getPDO.
Tu commences par vérifier si la propriété pdo est définie, la première fois elle ne l'est pas tu la définie donc via une variable nommée pdo, jusque là pas de problème, par contre la seconde fois la propriété est définie, sauf que tu la redéfinie via la variable pdo qui n'est pas définie, du coup lorsque tu retournes la propriété pdo elle n'est plus définie.
C'est d'ailleurs ce que te dit le message d'erreur :
Undefined variable pdo in ...MysqlDatabase.php on line 30
Je te recommenderais donc plutôt de remplacer le code de la fonction par ce qui suit :
