W3docs

get_host_info

Saiba como usar a função mysqli_get_host_info() no PHP para retornar informações sobre a conexão com o servidor MySQL, com exemplos práticos.

A função mysqli_get_host_info() retorna uma string única que descreve como seu script PHP está conectado ao servidor MySQL — o nome do host junto com o transporte (TCP/IP, um socket Unix ou um named pipe). Esta página explica a sintaxe, os valores que você pode esperar receber, os estilos procedural e orientado a objetos, e os casos práticos em que a função é útil.

O que get_host_info() retorna

mysqli_get_host_info() é uma função PHP embutida que, dado uma conexão MySQLi aberta, retorna uma string legível por humanos descrevendo o tipo de conexão e o host. Os valores de retorno típicos são:

  • localhost via TCP/IP — conectado ao servidor local por um socket de rede.
  • Localhost via UNIX socket — conectado por meio de um socket de domínio Unix local (o padrão no Linux/macOS quando o host é localhost).
  • 127.0.0.1 via TCP/IP — conectado a um IP explícito via TCP/IP.
  • db.example.com via TCP/IP — conectado a um host remoto.

É somente leitura e nunca altera a conexão; simplesmente informa o transporte negociado pelo driver. Isso o torna útil para depuração (confirmando que você realmente acessou o socket/host esperado) e para registro de diagnósticos de conexão.

Sintaxe

mysqli_get_host_info(mysqli $mysqli): string
ParâmetroDescrição
$mysqliUm object de conexão válido retornado por mysqli_connect() ou mysqli_real_connect().

Valor de retorno: uma string descrevendo o tipo de conexão com o servidor. Nunca retorna false; se o link for inválido, o PHP emite um aviso.

Estilo procedural

Passe o object de conexão retornado por mysqli_connect():

<?php
$mysqli = mysqli_connect("localhost", "username", "password", "database");

if (!$mysqli) {
    die("Connection failed: " . mysqli_connect_error());
}

echo "Host information: " . mysqli_get_host_info($mysqli);

mysqli_close($mysqli);
?>

Primeiro chamamos mysqli_connect() para abrir a conexão, depois verificamos o resultado para que possamos falhar de forma limpa com mysqli_connect_error() em vez de disparar avisos. Passar o link para mysqli_get_host_info() retorna a descrição do transporte, que imprimimos. Em um host Linux usando localhost, a saída se parece com:

Host information: Localhost via UNIX socket

Estilo orientado a objetos

A função procedural tem uma propriedade equivalente no object mysqli, get_host_info:

<?php
$mysqli = new mysqli("localhost", "username", "password", "database");

if ($mysqli->connect_errno) {
    die("Connection failed: " . $mysqli->connect_error);
}

echo "Host information: " . $mysqli->get_host_info;

$mysqli->close();
?>

Ambos os estilos retornam a mesma string. Observe que na forma orientada a objetos get_host_info é acessado como uma propriedade, não chamado como um método.

Quando devo usar isso?

  • Verificar o transporte. Forçar TCP/IP (por exemplo, usando 127.0.0.1 em vez de localhost) às vezes é necessário para ferramentas ou TLS. get_host_info() confirma qual você realmente obteve.
  • Registro de conexão. Registrar a string do host junto com as estatísticas de conexão fornece um registro rápido de onde uma requisição se conectou.
  • Solucionar "funciona localmente mas não em produção". Um surpreendente via UNIX socket vs via TCP/IP frequentemente explica diferenças de permissão ou firewall.

Armadilhas comuns

  • Não confunda com a superglobal $_SERVER. $_SERVER['SERVER_NAME'] descreve o servidor web que lida com a requisição HTTP; mysqli_get_host_info() descreve a conexão com o banco de dados — duas coisas não relacionadas.
  • A string é para humanos, não para análise. Se você precisar de valores estruturados, inspecione o host que você passou para mysqli_connect() em vez de dividir essa string.
  • Para a versão da biblioteca cliente MySQL (em vez do host de conexão), use mysqli_get_client_info(); para o lado do servidor, use mysqli_get_server_info().

Conclusão

mysqli_get_host_info() é uma função de diagnóstico pequena mas prática: informa como seu script alcançou o servidor MySQL. Use-a quando precisar confirmar ou registrar o transporte da conexão, e recorra a mysqli_get_proto_info() ou mysqli_get_connection_stats() quando precisar de mais detalhes.

Prática

Prática
O que mysqli_get_host_info() retorna?
O que mysqli_get_host_info() retorna?
Was this page helpful?