Erro: Uncaught Error: Call to a member function bind_param()
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](/topic/485668-fatal-error-call-to-a-member-function-bind_param-on-a-non-object/)). 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?Discussão (4)
Carregando comentários...