2013-12-07 4 views
8

При попытке создать экземпляр в другом файле появляется следующее сообщение об ошибке. Я новичок в PHP и не могу найти синтаксические ошибки с моим кодом.Не удается получить доступ к пустому объекту в PHP

Фатальная ошибка: Не удается получить доступ к пустой недвижимости в /home/leondash/public_html/poll/classes/database.php на линии 21

class Database { 

    private $host, $username, $password, $database; 
    private $db; 

    /** Opens a connection the database */ 
    public function __construct() { 
      $this->host  = "localhost"; 
      $this->username = "dbuser"; 
      $this->password = "dbpass"; 
      $this->database = "dbname"; 

      // the following line is giving the error 
      $this->db = mysqli_connect($this->host, $this->username, $this->$password, $this->database) 
      or die('Error: Could not connect to the database'); 

      return true; 
    } 
} 
+0

Как вы планируете подключаться к таблице «" на хосте »с именем« »в качестве имени пользователя и« »в качестве пароля? – JAL

+0

Смотрите свое редактирование. Можете ли вы лучше узнать информацию о своей фактической информации? Просто измените хост/имя пользователя/пароль. наличие в Q как пустого не точно отражает вашу ситуацию, учитывая, что они пустые звуки, как то, что вызывает ошибку. – JAL

+0

Обновлено мое сообщение, JAL. – Leon

ответ

34

Вы, кажется, есть ошибка на линии 21. Изменение:

$this->$password 

к:

$this->password 

Редактировать

Для справки, это то, что известно как variable variable , Пример:

$a = 'b'; 
$b = 'I am a variable variable'; 
echo $$a; // equivalent to `echo $b;` prints 'I am a variable variable' 
+1

+1 - Хороший улов! – Anthony

+1

Спасибо, кажется, проскользнул мимо моего взгляда. – Leon

+1

Арг, я уже подтвердил этот ответ в прошлом, когда он указал на явную ошибку, которую я сделал, я снова сделал то же самое ... Я бы хотел снова проголосовать –

1

Все они пусты.

 $this->host  = ""; 
     $this->username = ""; 
     $this->password = ""; 
     $this->database = ""; 

Вы не можете использовать URL-адрес «». У вас не может быть имени пользователя "". У вас нет базы данных "". но может иметь пароль "". Мысль не рекомендуется.

+0

Извините, обновил свое оригинальное сообщение. Код, который дает мне эту ошибку, не имеет таких пустых. – Leon

Смежные вопросы