Кто-то может помочь мне понять, почему __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();
}
}
приветствует,
Вы просто встроен один объект в другой. Тот факт, что ваш метод 'logar' является закрытым, абсолютно не имеет отношения к действиям в вашем классе DB. –