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 eslocalhost).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ámetro | Descripción |
|---|---|
$mysqli | Un 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 socketEstilo 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.1en lugar delocalhost) 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 socketfrente avia TCP/IPsuele 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, usamysqli_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.