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 estlocalhost).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ètre | Description |
|---|---|
$mysqli | Un 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 socketStyle 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.1au lieu delocalhost) 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 socketinattendu par rapport àvia TCP/IPexplique 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, utilisezmysqli_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.