Pular para o conteúdo principal

Questão de Programação — PHP — VUNESP 2024

ProgramaçãoPHP
Código
vu086445
Banca
VUNESP
Órgão
SAAE de Aparecida - SP
Ano
2024
Nível
Superior
Cargo
Analista de Tecnologia da Informação
Na linguagem PHP, a seguinte linha de código$c = mysqli_connect("localhost", "mysql_user","mysql_password", "db_name", null,"/tmp/mysql.sock");tenta efetuar uma conexão a um servidor de banco de dados MySQL.Assinale a alternativa correta, considerando a execução no sistema operacional Linux.
  1. AO servidor de destino da conexão está especificado de forma incorreta, e a execução dessa linha provocará um aviso do tipo invalid argument.
  2. BTenta-se conectar por TCP/IP em localhost, onde o arquivo local /tmp/mysql.sock contém o número da porta TCP a ser utilizada.
  3. CTenta-se conectar por TCP/IP em um servidor remoto cujo nome ou endereço IP é especificado no arquivo /tmp/mysql.sock.
  4. DTenta-se conectar em localhost por um UNIX socket identificado por /tmp/mysql.sock.
  5. ETenta-se conectar via UNIX socket em um servidor remoto cujo nome ou endereço IP é especificado no arquivo /tmp/mysql.sock.
Revelar gabarito e comentário

GabaritoD — Tenta-se conectar em localhost por um UNIX socket identificado por /tmp/mysql.sock.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Conexão MySQL com PHP: mysqli_connect e socket Unix

Gabarito: letra D. A função mysqli_connect com o primeiro argumento "localhost" e o último argumento "/tmp/mysql.sock" estabelece uma conexão via Unix socket (não TCP/IP) para o servidor local, exatamente como descrito na alternativa D. A assinatura da função é mysqli_connect(host, username, password, database, port, socket). Quando o host é "localhost" e um socket é explicitado, o PHP ignora a porta e utiliza o arquivo de socket Unix para a comunicação.

  1. 1Host = 'localhost'
  2. 2Socket = '/tmp/mysql.sock'
  3. 3Usa Unix socket (não TCP/IP)
  4. 4Conexão local
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

A linha de código é válida; não há argumento inválido. O formato dos parâmetros está correto e a função tentará a conexão sem gerar aviso "invalid argument".

Alternativa B — ❌ Incorreta

O arquivo /tmp/mysql.sock não contém o número da porta TCP. Ele é o caminho do socket Unix. Quando o host é "localhost" e um socket é fornecido, a conexão não utiliza TCP/IP.

Alternativa C — ❌ Incorreta

A conexão não é para um servidor remoto, pois o host é "localhost". Além disso, o arquivo de socket não contém nome ou IP do servidor; ele é o ponto de comunicação local.

Alternativa D — ✅ Correta ⟵ GABARITO

A função tenta conectar-se ao servidor MySQL rodando em localhost através do Unix socket localizado em /tmp/mysql.sock. Esse é o comportamento esperado: em sistemas Unix/Linux, quando o host é "localhost" e o parâmetro socket é informado, a extensão mysqli utiliza o socket Unix.

Alternativa E — ❌ Incorreta

A conexão não é remota (host = "localhost") e o arquivo de socket não especifica servidor remoto. O socket Unix só funciona localmente.

NÃO CAIA NESSA!

A banca tenta confundir o candidato sobre o tipo de conexão (TCP/IP vs. Unix socket) e o significado do arquivo de socket. Lembre-se: com host "localhost" e socket explícito, a comunicação é via socket Unix, não TCP. O arquivo não guarda IP ou porta.

Gabarito: letra D.

Link permanente: /questoes/vu086445