sql >> Database >  >> RDS >> Mysql

Fatale fout:$this gebruiken wanneer niet in objectcontext in

Zoals de fout zegt, kun je $this . niet gebruiken buiten de klassedefinitie. $_db gebruiken buiten de klassedefinitie, maak deze eerst public in plaats van private :

public $_db

Gebruik dan deze code:

$authDb = new AuthDb();
$authDb->_db->prepare($query); // rest of code is the same

--

Je moet begrijpen wat $this . is eigenlijk betekent. Bij gebruik binnen een klassedefinitie, $this wordt gebruikt om te verwijzen naar een object van die klasse. Dus als je een functie had foo binnen AuthDB , en je moest toegang krijgen tot $_db vanuit foo , zou je $this . gebruiken om PHP te vertellen dat je de $_db . wilt van hetzelfde object dat foo behoort.

Misschien wil je deze StackOverflow-vraag lezen:PHP:self vs $this




  1. SQL Sub-query's met controlebeperking

  2. Hoe een tekststring met regeleinden op te slaan in een MySQL-databasetekstveld met behulp van PHP?

  3. MariaDB ROWNUM() uitgelegd

  4. Is er in Oracle een functie die het verschil tussen twee datums berekent?