Mysql
 sql >> база данни >  >> RDS >> Mysql

Фатална грешка:Използване на $this, когато не е в контекста на обекта

Както казва грешката, не можете да използвате $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




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL при актуализация на дублиран ключ

  2. Оптимизирайте while и SQL във foreach

  3. Конкатениране на множество редове в единични редове в MySQL

  4. MySQL съкращава текста с многоточия

  5. Има ли MySQL команда, която да имплементира нещо като drop tables освен t1,b2?