Alternativa B - $conecta = mysql_connect("HOST", "LOGIN", "SENHA") or print (mysql_error());
A questão aborda a sintaxe clássica para estabelecer conexões entre PHP e bancos de dados MySQL utilizando a extensão procedural antiga. Embora essa função esteja obsoleta nas versões modernas do PHP, ela era o padrão em exames anteriores.
A função correta para conexão nesse contexto é mysql_connect(), que recebe como parâmetros o endereço do servidor, o usuário e a senha. Para tratamento de erro, utiliza-se a função específica mysql_error(), que retorna a mensagem da última falha ocorrida na conexão.
Análise Detalhada
Vamos verificar cada alternativa para entender os erros presentes nelas:
- Alternativa A: Utiliza a função
mysql(), que não existe na biblioteca padrão do PHP para conexões. O nome correto exige o sufixo _connect. - Alternativa B: Apresenta a sintaxe correta da época:
- Usa
mysql_connect() para abrir o link. - Usa
mysql_error() para exibir mensagens de falha. - É a resposta esperada pelo edital de 2017.
- Alternativa C: Utiliza uma função genérica chamada
connect(), que não faz parte da linguagem PHP nativa. - Alternativa D: Embora utilize
mysql_connect() corretamente, o manejo de erro está errado ao chamar error() em vez de mysql_error(). A função error() isoladamente não existe nesse escopo. - Alternativa E: Tenta usar Orientação a Objetos com a classe
MySQL, que não existe. A classe correta seria mysqli ou PDO, e a sintaxe de acesso a propriedades também estaria incorreta (Mysql->error() sem instância).
Considerações sobre Modernização
É importante notar que a extensão mysql_* foi descontinuada no PHP 5.5 e removida no PHP 7.0 por questões de segurança. Em projetos atuais, recomenda-se utilizar:
- PDO (PHP Data Objects): Mais flexível e seguro.
- MySQLi (MySQL Improved): Versão moderna da extensão antiga, suportando tanto estilo procedural quanto orientado a objetos.
No entanto, para fins de resolução desta prova específica, a alternativa B representa a única sintaxe funcional entre as opções apresentadas.
Alternativa B.