Както казва грешката, не можете да използвате $this извън дефиницията на класа. За да използвате $_db извън дефиницията на класа, първо го направете public вместо private :
public $_db
След това използвайте този код:
$authDb = new AuthDb();
$authDb->_db->prepare($query); // rest of code is the same
--
Трябва да разберете какво $this всъщност означава. Когато се използва в дефиниция на клас, $this се използва за препращане към обект от този клас. Така че, ако имате функция foo вътре в AuthDB , и трябваше да получите достъп до $_db от foo , бихте използвали $this за да кажете на PHP, че искате $_db от същия обект, който foo принадлежи на.
Може да искате да прочетете този въпрос на StackOverflow:PHP:self vs $this