Ir para conteúdo

Hiccup

Members
  • Total de itens

    47
  • Registro em

  • Última visita

Reputação

0 Comum

Sobre Hiccup

  1. Hiccup

    Erro: Uncaught Error: Call to a member function bind_param()

    Eu devo estar fazendo algo errado ainda. Vou colocar aqui a estrutura da classe UsuariosM. Desculpe a ignorância, eu não não sei muito dessa parte. Estendi a classe DBModels. Mesmo assim o erro continua. <?php class UsuariosM extends DBModels{ // Atributos espelhos do banco // Funções GETs e SETs /** * Verifica se o login e senha do usuário estão corretos */ public function validacao_usuarios($usuariosM) { $login = $usuariosM->getLogin(); $senha = $usuariosM->getSenha(); $senha = md5($senha); $st_query = "SELECT login FROM usuarios WHERE login = ? and senha = ?"; $db = new DBModels(); $conn = $db->newConnection(); $stm = $conn->prepare($st_query); $stm->bind_param('ss', $login, $senha); $stm->execute(); $stm->store_result(); return $stm->num_rows; } }
  2. Hiccup

    Erro: Uncaught Error: Call to a member function bind_param()

    Obrigado Omar, vou tentar fazer os ajustes aqui.
  3. Bom dia, Estou fazendo o site do meu casamento e coloquei uma parte de login e senha, assim como outros recursos utilizando PHP. Na minha máquina estou com o PHP 7.4.14, Apache 2.4 e MySQL 8. No host a versão do PHP é a 7.4. Desenvolvi tudo e local está tudo funcionando, todas as funcionalidades. O problema apareceu quando fui subir o site para o host, comecei a tomar o erro "Fatal error: Uncaught Error: Call to a member function bind_param() on bool in(...)". A linha que dá erro é exatamente a linha "$stm->bind_param('ss', $login, $senha);". Fiz buscas no Google, li posts no stackoverflow e até achei um post aqui no IMasters (Fatal error: Call to a member function bind_param() on a non-object - PHP - Fórum iMasters). Fui ler a documentação e mesmo assim não encontrei a causa do problema. Teve um post no stackoverflow que a solução dada estava escrita exatamente da mesma forma que o meu código. Eu separei a conexão com o banco em uma classe. Também tinha colocado alguns "echo" para ver se está conectando com o banco certinho e está. <?php class DBModels{ private $server = "localhost"; private $user = "root"; private $password = "123456"; private $db = "casorio"; public function newConnection(){ $conn = new mysqli($this->server, $this->user, $this->password, $this->db); if (!$conn->set_charset("utf8")) { printf("Error loading character set utf8: %s\n", $conn->error); } return $conn; } public function disconnect(){ mysqli_close($this->conn); } } ?> <?php public function validacao_usuarios($usuariosM) { $login = $usuariosM->getLogin(); $senha = $usuariosM->getSenha(); $senha = md5($senha); $st_query = "SELECT id_usuario, login FROM usuarios WHERE login = ? and senha = ?"; $db = new DBModels(); $conn = $db->newConnection(); $stm = $conn->prepare($st_query); //Cheguei a colocar um echo aqui para ver o conteúdo das variáveis $login e $senha nesse ponto e as duas estão com os valores corretos. $stm->bind_param('ss', $login, $senha); //Essa é a linha que está estourando o erro $stm->execute(); $stm->store_result(); return $stm->num_rows; } ?> Já não sei se é erro de digitação, algum conceito que não entendi, falta alguma linha de código. Estou há 2 dias tentando encontrar o erro e nada. Vocês podem me dar uma força, por favor?
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.