2012-12-22 3 views
1

Когда я использую это PHP кодирование, я получаю следующее сообщение об ошибке:Фатальная ошибка: Не удается получить доступ к пустой собственности - функция подключения()

Фатальная ошибка: Не удается получить доступ к пустой недвижимости в /connection.php на линии 29

class connectionClass 
{ 

    var $host = ''; 
    var $user = ''; 
    var $password = ''; 
    var $db = ''; 
    var $con 

    function __construct($flag) 
    { 
     if($flag == "local"): 
      $this->host = "localhost"; 
      $this->user = "root"; 
     elseif($flag == "remote"): 
      $this->host = "192.168.1.2"; 
      $this->user = "root"; 
     else: 
      echo "Incorrect connection flag."; 
     endif; 

     $this->password = $password; 
     $this->db = $db; 
    } 

    function connect() 
    { 
     $con = mysql_connect($this->host, $this->user, $this->password) or die(mysql_error()); 
     mysql_select_db($this->db, $con) or die(mysql_error()); 
    } 

} 

Любые предложения? Заранее спасибо.

+2

Почему у вас есть эти линии? $ this-> password = $ password; $ this-> db = $ db ;? $ password и $ db не определены, поскольку они не существуют в пределах функции. –

+0

Кроме того, это лучшее время для перехода на PDO или mysqli, поскольку вы еще ничего не сделали с этим классом. – inhan

ответ

4

Что такое альтернативный синтаксис в классе? Плохая практика - вы не пишете шаблон. Используйте фигурные скобки.

Скорее всего, ваша проблема здесь:

$this->password = $password; 
$this->db = $db; 

Вы назначаете $ пароль в переменном классе, но $ паролей не является параметр в конструкторе. Таким образом, ваш пароль $ this-> имеет значение null. Такая же проблема с $ this-> db.

+0

Спасибо за ответы! Они были чрезвычайно полезны. – user1922996

2

Проблема в вашей функции «__construct».

Посмотрите на строку 23, '$ this-> db = $ db;'. Убедитесь, что вы указали локальную переменную $ db со значением.

Примечание: определение переменной «$ password» (строка 22) также отсутствует. Убедитесь, что вы указали это тоже со значением.

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