Come dice l'errore, non puoi usare $this al di fuori della definizione di classe. Per utilizzare $_db al di fuori della definizione della classe, prima rendila public invece di private :
public $_db
Quindi, usa questo codice:
$authDb = new AuthDb();
$authDb->_db->prepare($query); // rest of code is the same
--
Devi capire cosa $this in realtà significa. Quando viene utilizzato all'interno di una definizione di classe, $this è usato per fare riferimento a un oggetto di quella classe. Quindi, se avessi una funzione foo all'interno di AuthDB e dovevi accedere a $_db da foo , useresti $this per dire a PHP che vuoi il $_db dallo stesso oggetto che foo appartiene a.
Potresti voler leggere questa domanda su StackOverflow:PHP:self vs $this