Ir para conteúdo
Fórum Script Brasil
  • 0

Problema com PDO


Adenesjr

Pergunta

Fiz a classs AcessarBase e a classe usuarios. Na classe AcessarBase possui um método static que é chamado por um objeto da classe usuarios pelo método logaUsuario($usuario, $senha); Quando faço a chamada ao método statusConexao($host, $porta, $usuario, $senha, $dbname) pelo método logaUsuario($usuario, $senha) da classe Usuarios o retorno é positivo, conexão aceita, porém dar o seguinte erro:

Warning: pg_query(): No PostgreSQL link opened yet in C:\wamp\www\teste\src\lib\usuario.class.php on line 115
Warning: pg_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\wamp\www\teste\src\lib\usuario.class.php on line 117

LInha 115: $query = pg_query($sql);
Linha 117: $resultado = pg_fetch_assoc($query);

Não permitindo continuar....

Se altero a assinatura do método statusConexao($host, $porta, $usuario, $senha, $dbname) para:
$dtb = @pg_connect("host=$host port=$porta dbname=$dbname user=$usuario password=$senha");
return (!$dtb) ? false : true;

Funciona corretamente, sem problema nenhum. Então onde está o problema?

#classe AcessarBase
    class AcessarBase{
        static function statusConexao($host, $porta, $usuario, $senha, $dbname){
            try{
              return $conexao = new \PDO("pgsql:host=$host port=$porta dbname=$dbname user=$usuario password=$senha");
           } catch(\PDOException $e){
              return $error = "Não foi possível fazer a conexão com o banco de dados. Erro codigo: ".$e -> getCode()." Mesagem: ".$e -> getMessage();
           }
       }
    }

#classe usuarios
      class Usuarios{
         function logaUsuario($usuario, $senha) {
              if (AcessarBase::statusConexao(HOST, PORTA, USUARIO, SENHA, BASE)){
                  // Inicia a sessão
                 session_start("teste");
                 $_SESSION['logado'] = "teste-sim";
                 $_SESSION['usuario'] = $usuario;

                // Consulta os dados
                $sql = "SELECT *
                            FROM usuarios
                            WHERE email = '$usuario'";

                $query = pg_query($sql);

                $resultado = pg_fetch_assoc($query);
            } else {
                  $this->erro = "Não foi possível conectar ao banco de dados. Se isso ocorrer novamente entre em contato com o suporte tecnico.";
                  return false;
            }
      }
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...