W3docs

get_host_info

Aprende a usar mysqli_get_host_info() en PHP para obtener información sobre la conexión al servidor MySQL: tipo de transporte y host.

La función mysqli_get_host_info() devuelve una string única que describe cómo está conectado tu script PHP al servidor MySQL — el nombre del host junto con el transporte (TCP/IP, un socket Unix o una tubería con nombre). Esta página explica la sintaxis, los valores que puedes esperar, tanto en estilo procedimental como orientado a objetos, y los casos prácticos en los que conviene usar esta función.

Qué devuelve get_host_info()

mysqli_get_host_info() es una función PHP integrada que, dada una conexión MySQLi abierta, devuelve una string legible por humanos que describe el tipo de conexión y el host. Los valores de retorno típicos son:

  • localhost via TCP/IP — conectado al servidor local a través de un socket de red.
  • Localhost via UNIX socket — conectado mediante un socket de dominio Unix local (el predeterminado en Linux/macOS cuando el host es localhost).
  • 127.0.0.1 via TCP/IP — conectado a una IP explícita mediante TCP/IP.
  • db.example.com via TCP/IP — conectado a un host remoto.

Es de solo lectura y nunca modifica la conexión; simplemente informa el transporte que negoció el driver. Esto la hace útil para depuración (confirmar que realmente llegaste al socket/host esperado) y para registro de diagnósticos de conexión.

Sintaxis

mysqli_get_host_info(mysqli $mysqli): string
ParámetroDescripción
$mysqliUn objeto de conexión válido devuelto por mysqli_connect() o mysqli_real_connect().

Valor de retorno: una string que describe el tipo de conexión al servidor. Nunca devuelve false; si el enlace es inválido, PHP lanza una advertencia en su lugar.

Estilo procedimental

Pasa el objeto de conexión devuelto 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);
?>

Primero llamamos a mysqli_connect() para abrir la conexión, luego comprobamos el resultado para poder fallar limpiamente con mysqli_connect_error() en lugar de disparar advertencias. Pasar el enlace a mysqli_get_host_info() devuelve la descripción del transporte, que imprimimos. En un host Linux usando localhost, la salida se ve así:

Host information: Localhost via UNIX socket

Estilo orientado a objetos

La función procedimental tiene una propiedad equivalente en el objeto 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 estilos devuelven la misma string. Ten en cuenta que en la forma orientada a objetos, get_host_info se accede como una propiedad, no se llama como método.

¿Cuándo usarla?

  • Verificar el transporte. Forzar TCP/IP (por ejemplo, usando 127.0.0.1 en lugar de localhost) a veces es necesario para herramientas o TLS. get_host_info() confirma cuál obtuviste realmente.
  • Registro de conexiones. Registrar la string del host junto con las estadísticas de conexión te proporciona un registro rápido de dónde se conectó una solicitud.
  • Solución de problemas de "funciona en local pero no en producción". Un inesperado via UNIX socket frente a via TCP/IP suele explicar diferencias de permisos o firewall.

Errores comunes

  • No la confundas con la superglobal $_SERVER. $_SERVER['SERVER_NAME'] describe el servidor web que gestiona la solicitud HTTP; mysqli_get_host_info() describe la conexión a la base de datos — dos cosas independientes.
  • La string es para humanos, no para parsear. Si necesitas valores estructurados, inspecciona el host que pasaste a mysqli_connect() en lugar de dividir esta string.
  • Para la versión de la biblioteca cliente de MySQL (en lugar del host de conexión), usa mysqli_get_client_info(); para el lado del servidor, usa mysqli_get_server_info().

Conclusión

mysqli_get_host_info() es una función de diagnóstico pequeña pero práctica: informa cómo llegó tu script al servidor MySQL. Úsala cuando necesites confirmar o registrar el transporte de conexión, y recurre a mysqli_get_proto_info() o mysqli_get_connection_stats() cuando necesites más detalle.

Práctica

Práctica
¿Qué devuelve mysqli_get_host_info()?
¿Qué devuelve mysqli_get_host_info()?
Was this page helpful?