2014-02-11 2 views
0

Кто-то может помочь мне понять, почему __construct() работает не так, как ожидалось? Или почему $ link является Undefined?mysqli_connect вернуться к приватному var

Я получил сообщение об ошибке:

Примечание: Undefined переменной: ссылка в D: \ WAMP \ WWW \ OI_WORK \ формы \ Projeto_Interface \ ПРОИСХОДЯЩЕЙ \ PHP \ class.php в строке 29

Это строка 29 :

$consulta = mysqli_query($this->link, $query) or die("Error consulta" . mysqli_error($link)); 

$ ссылка определяется здесь:

class DB{ 
    private $link; 
    private $_DEFINICOES; 

в __construct():

function __construct(){ 
    $this->_DEFINICOES = array(
      'database_ip' => "xxxx", 
      'database_user' => "xxx", 
      'database_senha' => "xxx", 
      'database_name' => "xxxx"); 

    $this->link = mysqli_connect($this->_DEFINICOES['database_ip'], $this->_DEFINICOES['database_user'], $this->_DEFINICOES['database_senha'], $this->_DEFINICOES['database_name']) or die("Error " . mysqli_error($this->link));   
    } 

Я называю этот класс DB внутри частной функции в классе controleUsuario и это генерировать вышеуказанную ошибку

private function logar(){ 
    $banco = new DB(); 
    $retorno = $banco->consultarDB(" 
     SELECT `idusuario` 
     FROM usuariosbeta 
     WHERE idusuario = {$_SESSION['login']}"); 
    print ("numero de linhas" . $retorno->num_rows); 
    } 

здесь есть функция, которая вызывает controleUsuario-> Логар()

public function salvaPost($post){ 
    /* se o post nao estiver nulo ou com valor false atribui ao session */ 
    if(!(($post == false) or ($post == null))){ 
     foreach ($post as $key => $valor){ 
      /* segurança post */     
      $_SESSION[$key] = $valor; 
     } 
     $this->segurancaLogin($valor); 
     $this->logar(); 
    } 
    } 

приветствует,

+1

Вы просто встроен один объект в другой. Тот факт, что ваш метод 'logar' является закрытым, абсолютно не имеет отношения к действиям в вашем классе DB. –

ответ

0

нашел ошибку с небольшой помощью от эксперта

$consulta = mysqli_query($this->link, $query) or die("Erro consulta" . mysqli_error($this->link)); 

неправильно

mysqli_error($link)); 

Rigth

mysqli_error($this->link));