sql >> Databáze >  >> RDS >> Mysql

Závažná chyba:Použití $this, když není v kontextu objektu v

Jak chyba říká, nemůžete použít $this mimo definici třídy. Chcete-li použít $_db mimo definici třídy, nejprve ji udělejte public místo private :

public $_db

Poté použijte tento kód:

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

--

Musíte pochopit, co $this vlastně znamená. Při použití v definici třídy $this se používá k označení objektu této třídy. Pokud jste tedy měli funkci foo uvnitř AuthDB a potřebovali jste přístup k $_db zevnitř foo , použili byste $this říct PHP, že chcete $_db ze stejného objektu jako foo patří.

Možná si budete chtít přečíst tuto otázku StackOverflow:PHP:self vs $this




  1. Změní se ID prostředku při každém spuštění aplikace

  2. Co přesně dělají uvozovky kolem názvu tabulky?

  3. mysql:zobrazit všechna otevřená připojení k dané databázi?

  4. INSTR() Ekvivalent v SQL Server