mysqli_connect вернуться к частной переменной

кто-нибудь может помочь мне понять, почему __construct() не работает должным образом? Или почему $link не определен?

Я получил ошибку:

Примечание. Неопределенная переменная: ссылка в D:\wamp\www\OI_WORK\forms\Projeto_Interface\ONGOING\php\class.php в строке 29.

Это строка 29:

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

$link определяется здесь:

class DB{
  private $link;
  private $_DEFINICOES;

__конструкт():

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->logar()

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();
     }
  }

С уважением,


person Jankiel Goldman    schedule 11.02.2014    source источник
comment
Вы просто встроили один объект в другой. Тот факт, что ваш метод logar является закрытым, абсолютно не имеет отношения к тому, как работают вещи в вашем классе БД.   -  person Marc B    schedule 11.02.2014


Ответы (1)


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

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

неправильный

mysqli_error($link));

правильно

mysqli_error($this->link));
person Jankiel Goldman    schedule 12.02.2014