CriandoBits Postado Fevereiro 25, 2021 Denunciar Share Postado Fevereiro 25, 2021 Estou há dias tentando entender o motivo do erro "mysqli_query() expects parameter 1 to be mysqli, null given in" no meu projeto. Classe utilizada (arquivo conexao.php): class Funcoes { public $servidor = 'localhost'; public $usuario = 'meu_user'; public $senha = 'minha_senha'; public $bd = 'meu_bd'; public function cnx() { $link = mysqli_connect($this->servidor, $this->usuario, $this->senha, $this->bd); return $link; } } Arquivo com o erro: include ($_SERVER['DOCUMENT_ROOT']."/_pg/conexao.php"); $obj = new Funcoes(); $link = $obj->cnx(); function abreLink($descricao) { $query = mysqli_query($link, "SELECT * FROM links WHERE descricao='$descricao'"); while ($row = mysqli_fetch_array($query, MYSQLI_ASSOC)) { $url = $row['link']; } return $url; } } Alguém poderia dar uma luz?! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Frank K Hosaka Postado Janeiro 28, 2023 Denunciar Share Postado Janeiro 28, 2023 (editado) Eu tive que fazer várias modificações para testar esse código. O mais problemático foi esse daqui: function abreLink($descricao) { $query = mysqli_query($link, "SELECT * FROM links WHERE descricao='$descricao'"); while ($row = mysqli_fetch_array($query, MYSQLI_ASSOC)) {$url = $row['link'];} return $url;} a variável $url da última linha não tem nenhum valor a variável $url da penúltima linha pode receber vários valores, vai prevalecer a última. a variável $link não tem nenhum valor Esse é o famoso capítulo da visibilidade da variável, eu levei 20 anos para entender o problema. O fato da variável estar definida dentro de um mesmo módulo não quer dizer que todo mundo consegue enxergá-la. Outro problema que eu não consegui resolver foi o mysqli_fetch_array( ), eu não consegui usar. O conceito de visibilidade é importante para administrar qualquer tipo de linguagem (HTML, JavaScript, CSS, PHP, Laravel) e mais ainda no Detran (eles não vão liberar o seu CNH se você não dominar a visibilidade). A seguir o código que eu usei para testar: <?php class Funcoes { public $servidor = 'localhost'; public $usuario ='root'; //'meu_user'; public $senha = ''; // 'minha_senha'; public $bd = 'astudy'; //'meu_bd'; public function cnx() { $link = mysqli_connect($this->servidor, $this->usuario, $this->senha, $this->bd); return $link;}} // echo $_SERVER['DOCUMENT_ROOT']."/wamp64/www/astudy/menu.php"; $obj = new Funcoes(); $link = $obj->cnx(); function abreLink($link,$descricao){ $query = mysqli_query($link, "select * from tblinks where descricao='$descricao'"); $urls = $query->fetch_array(MYSQLI_ASSOC); return var_dump($urls);} $teste=abreLink($link,"beterraba"); Editado Janeiro 28, 2023 por Frank K Hosaka Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
CriandoBits
Estou há dias tentando entender o motivo do erro "mysqli_query() expects parameter 1 to be mysqli, null given in" no meu projeto.
Classe utilizada (arquivo conexao.php):
class Funcoes {
public $servidor = 'localhost';
public $usuario = 'meu_user';
public $senha = 'minha_senha';
public $bd = 'meu_bd';
public function cnx()
{
$link = mysqli_connect($this->servidor, $this->usuario, $this->senha, $this->bd);
return $link;
}
}
Arquivo com o erro:
include ($_SERVER['DOCUMENT_ROOT']."/_pg/conexao.php");
$obj = new Funcoes();
$link = $obj->cnx();
function abreLink($descricao) {
$query = mysqli_query($link, "SELECT * FROM links WHERE descricao='$descricao'");
while ($row = mysqli_fetch_array($query, MYSQLI_ASSOC)) {
$url = $row['link'];
}
return $url;
}
}
Alguém poderia dar uma luz?!
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.