Som fejlen siger, kan du ikke bruge $this uden for klassedefinitionen. For at bruge $_db uden for klassedefinitionen skal du først gøre den public i stedet for private :
public $_db
Brug derefter denne kode:
$authDb = new AuthDb();
$authDb->_db->prepare($query); // rest of code is the same
--
Du skal forstå hvad $this betyder faktisk. Når det bruges i en klassedefinition, $this bruges til at henvise til et objekt i den pågældende klasse. Så hvis du havde en funktion foo inde i AuthDB , og du skulle have adgang til $_db inde fra foo , ville du bruge $this for at fortælle PHP, at du vil have $_db fra det samme objekt som foo tilhører.
Du vil måske læse dette StackOverflow-spørgsmål:PHP:self vs $this