W3docs

get_host_info

Découvrez la fonction mysqli_get_host_info() en PHP, qui retourne les informations d'hôte d'une connexion MySQL : syntaxe, valeurs et exemples.

La fonction mysqli_get_host_info() retourne une chaîne unique décrivant comment votre script PHP est connecté au serveur MySQL — le nom d'hôte ainsi que le transport utilisé (TCP/IP, une socket Unix ou un tube nommé). Cette page explique la syntaxe, les valeurs attendues en retour, les styles procédural et orienté objet, ainsi que les cas pratiques où cette fonction est utile.

Ce que retourne get_host_info()

mysqli_get_host_info() est une fonction PHP intégrée qui, à partir d'une connexion MySQLi ouverte, retourne une string lisible décrivant le type de connexion et l'hôte. Les valeurs typiques retournées sont :

  • localhost via TCP/IP — connecté au serveur local via une socket réseau.
  • Localhost via UNIX socket — connecté via une socket de domaine Unix locale (par défaut sur Linux/macOS lorsque l'hôte est localhost).
  • 127.0.0.1 via TCP/IP — connecté à une adresse IP explicite via TCP/IP.
  • db.example.com via TCP/IP — connecté à un hôte distant.

Cette fonction est en lecture seule et ne modifie jamais la connexion ; elle indique simplement le transport négocié par le pilote. Elle est donc pratique pour le débogage (confirmer que vous avez bien atteint la socket/l'hôte attendu) et pour la journalisation des diagnostics de connexion.

Syntaxe

mysqli_get_host_info(mysqli $mysqli): string
ParamètreDescription
$mysqliUn objet de connexion valide retourné par mysqli_connect() ou mysqli_real_connect().

Valeur de retour : une string décrivant le type de connexion au serveur. Elle ne retourne jamais false ; si le lien est invalide, PHP émet un avertissement à la place.

Style procédural

Passez l'objet de connexion retourné par 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);
?>

Nous appelons d'abord mysqli_connect() pour ouvrir la connexion, puis nous vérifions le résultat afin de pouvoir échouer proprement avec mysqli_connect_error() plutôt que de déclencher des avertissements. Passer le lien à mysqli_get_host_info() retourne la description du transport, que nous affichons. Sur un hôte Linux utilisant localhost, la sortie ressemble à :

Host information: Localhost via UNIX socket

Style orienté objet

La fonction procédurale possède une propriété équivalente sur l'objet 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();
?>

Les deux styles retournent la même string. Notez que dans la forme orientée objet, get_host_info est accessible en tant que propriété, et non appelée comme une méthode.

Quand l'utiliser ?

  • Vérifier le transport. Forcer TCP/IP (par exemple en utilisant 127.0.0.1 au lieu de localhost) est parfois nécessaire pour des outils ou TLS. get_host_info() confirme lequel vous avez réellement obtenu.
  • Journalisation des connexions. Enregistrer la string d'hôte aux côtés des statistiques de connexion vous donne un aperçu rapide de l'endroit où une requête s'est connectée.
  • Dépannage du « ça marche en local mais pas en production ». Un via UNIX socket inattendu par rapport à via TCP/IP explique souvent des différences de permissions ou de pare-feu.

Pièges courants

  • Ne confondez pas cette fonction avec le superglobal $_SERVER. $_SERVER['SERVER_NAME'] décrit le serveur web qui traite la requête HTTP ; mysqli_get_host_info() décrit la connexion à la base de données — deux choses sans rapport.
  • La string est destinée aux humains, pas à l'analyse syntaxique. Si vous avez besoin de valeurs structurées, inspectez l'hôte que vous avez passé à mysqli_connect() plutôt que de découper cette string.
  • Pour la version de la bibliothèque cliente MySQL (plutôt que l'hôte de connexion), utilisez mysqli_get_client_info() ; pour le côté serveur, utilisez mysqli_get_server_info().

Conclusion

mysqli_get_host_info() est une petite fonction de diagnostic pratique : elle indique comment votre script a atteint le serveur MySQL. Utilisez-la lorsque vous devez confirmer ou journaliser le transport de connexion, et tournez-vous vers mysqli_get_proto_info() ou mysqli_get_connection_stats() lorsque vous avez besoin de plus de détails.

Pratique

Pratique
Que retourne mysqli_get_host_info() ?
Que retourne mysqli_get_host_info() ?
Was this page helpful?