Som felet säger kan du inte använda $this utanför klassdefinitionen. För att använda $_db utanför klassdefinitionen, gör den först public istället för private :
public $_db
Använd sedan den här koden:
$authDb = new AuthDb();
$authDb->_db->prepare($query); // rest of code is the same
--
Du måste förstå vad $this betyder faktiskt. När den används i en klassdefinition, $this används för att referera till ett objekt i den klassen. Så om du hade en funktion foo inuti AuthDB , och du behövde komma åt $_db inifrån foo , skulle du använda $this för att tala om för PHP att du vill ha $_db från samma objekt som foo tillhör.
Du kanske vill läsa denna StackOverflow-fråga:PHP:self vs $this