Informática Múltipla Escolha

Considere o código PHP abaixo, que faz a conexão com um banco de dados. Para o código estar correto, as lacunas devem ser preenchidas por:

Considere o código PHP abaixo, que faz a conexão com um banco de dados. Para o código estar correto, as lacunas devem ser preenchidas por:

  1. mysqli_connect - SQLException
  2. PDOConnect - PDOException
  3. mysqli_connect - Exception
  4. new PDO - PDOException
  5. database_connect - DatabaseException

Resolução completa

Explicação passo a passo

D
Alternativa D

Alternativa D - new PDO - PDOException

Análise Detalhada

A questão aborda o uso da biblioteca PDO (PHP Data Objects) para conectar ao banco de dados PostgreSQL via PHP. Vamos analisar os pontos principais do código para identificar as lacunas corretas.

1. Identificação da Classe de Conexão

Observe a string de conexão definida na variável $dsn:

"pgsql:host=" . HOST . ";port=". PORT .";dbname=" . DBNAME . ";user=" . USER . ";password=" . PASSWORD
  • O prefixo pgsql: indica explicitamente que estamos usando o driver PostgreSQL.
  • A forma como as credenciais são passadas (uma string grande contendo parâmetros separados por ponto e vírgula) é característica da configuração de DSN (Data Source Name) utilizada pelo PDO.
  • Para criar uma conexão com PDO, utilizamos o construtor da classe PDO. A sintaxe correta é new PDO(string $dsn).

Portanto, a primeira lacuna deve conter new PDO.

2. Tratamento de Exceções

O código utiliza uma estrutura de bloqueio try ... catch, fundamental para segurança em programação quando há risco de erros de conexão (como senha incorreta ou servidor indisponível).

  • Quando ocorre um erro durante a tentativa de conexão com o PDO, ele lança uma exceção específica.
  • A classe de exceção correspondente ao PDO é a PDOException.
  • Se usássemos mysqli (alternativas A e C), a classe de exceção seria diferente (ou não haveria tratamento automático via catch dessa forma sem configurações específicas de modo de exceção), e a função seria mysqli_connect().
  • SQLException (alternativa A) é uma classe comum em linguagens como Java, mas não é a padrão nativa do PHP para esta situação.

Resumo das Lacunas

LacunaConteúdo NecessárioMotivo
1ª Lacunanew PDOSintaxe obrigatória para instanciar a conexão.
2ª LacunaPDOExceptionClasse responsável por capturar erros de conexão do PDO.

Por que as outras estão erradas?

  • A e C (mysqli): O código usa pgsql, não MySQL. Além disso, mysqli_connect recebe argumentos separados, não uma string formatada como DSN concatenada desta forma.
  • B (PDOConnect): Não existe uma classe chamada PDOConnect no PHP. A classe é simplesmente PDO.
  • E (database_connect): Não existe função database_connect na biblioteca padrão do PHP.

Conclusão:
Para que o código funcione corretamente conectando-se ao PostgreSQL, deve-se instanciar a classe PDO e capturar a exceção PDOException.

Tem outra questão para resolver?

Resolver agora com IA

Mais questões de Informática

Ver mais Informática resolvidas

Tem outra questão de Informática?

Cole o enunciado, tire uma foto ou descreva o problema — a IA resolve com explicação completa em segundos.