sql >> Databasteknik >  >> RDS >> Mysql

Allvarligt fel:Använder $this när den inte är i objektsammanhang i

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




  1. Laravel 5:synkroniserar ett extra fält via pivot

  2. Returnera ett standardvärde om en rad inte hittas

  3. Hur man minimerar RPO för dina PostgreSQL-databaser med hjälp av punktåterställning

  4. Finns det ett sätt att köra mer än en fråga per sträng i MySQL-Python?