get_host_info
Scopri la funzione mysqli_get_host_info() in PHP, usata per restituire le informazioni sull'host di una connessione MySQL.
La funzione mysqli_get_host_info() restituisce una singola string che descrive come il tuo script PHP è connesso al server MySQL — il nome dell'host insieme al trasporto (TCP/IP, un socket Unix o una named pipe). Questa pagina spiega la sintassi, i valori che puoi aspettarti, sia lo stile procedurale che quello orientato agli oggetti, e i casi pratici in cui vale la pena utilizzare questa funzione.
Cosa restituisce get_host_info()
mysqli_get_host_info() è una funzione PHP integrata che, data una connessione MySQLi aperta, restituisce una string leggibile che descrive il tipo di connessione e l'host. I valori restituiti tipici sono:
localhost via TCP/IP— connesso al server locale tramite un socket di rete.Localhost via UNIX socket— connesso tramite un socket di dominio Unix locale (predefinito su Linux/macOS quando l'host èlocalhost).127.0.0.1 via TCP/IP— connesso a un IP esplicito tramite TCP/IP.db.example.com via TCP/IP— connesso a un host remoto.
È di sola lettura e non modifica mai la connessione; si limita a riportare il trasporto negoziato dal driver. Ciò lo rende utile per il debug (per confermare di aver raggiunto effettivamente il socket/host previsto) e per il logging dei diagnostici di connessione.
Sintassi
mysqli_get_host_info(mysqli $mysqli): string| Parametro | Descrizione |
|---|---|
$mysqli | Un object di connessione valido restituito da mysqli_connect() o mysqli_real_connect(). |
Valore restituito: una string che descrive il tipo di connessione al server. Non restituisce mai false; se il link non è valido PHP genera un avviso.
Stile procedurale
Passa l'object di connessione restituito da 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);
?>Prima chiamiamo mysqli_connect() per aprire la connessione, poi verifichiamo il risultato in modo da poter fallire correttamente con mysqli_connect_error() invece di generare avvisi. Passare il link a mysqli_get_host_info() restituisce la descrizione del trasporto, che stampiamo. Su un host Linux che utilizza localhost, l'output è simile a:
Host information: Localhost via UNIX socketStile orientato agli oggetti
La funzione procedurale ha una proprietà equivalente sull'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();
?>Entrambi gli stili restituiscono la stessa string. Si noti che nella forma orientata agli oggetti get_host_info è accessibile come proprietà, non come metodo.
Quando usarla?
- Verifica del trasporto. Forzare TCP/IP (ad esempio usando
127.0.0.1invece dilocalhost) è talvolta necessario per gli strumenti o per TLS.get_host_info()conferma quale hai effettivamente ottenuto. - Logging delle connessioni. Registrare la string dell'host insieme alle statistiche di connessione ti fornisce un rapido registro visivo di dove si è connessa una richiesta.
- Risoluzione dei problemi "funziona in locale ma non in produzione". Un inaspettato
via UNIX socketrispetto avia TCP/IPspiega spesso differenze di permessi o di firewall.
Errori comuni
- Non confonderla con il superglobal
$_SERVER.$_SERVER['SERVER_NAME']descrive il server web che gestisce la richiesta HTTP;mysqli_get_host_info()descrive la connessione al database — due cose non correlate. - La string è destinata agli esseri umani, non al parsing. Se hai bisogno di valori strutturati, ispeziona l'host che hai passato a
mysqli_connect()piuttosto che dividere questa string. - Per la versione della libreria client MySQL (anziché l'host di connessione), usa
mysqli_get_client_info(); per il lato server, usamysqli_get_server_info().
Conclusione
mysqli_get_host_info() è una funzione diagnostica piccola ma pratica: riporta come il tuo script ha raggiunto il server MySQL. Usala quando hai bisogno di confermare o registrare il trasporto di connessione, e ricorri a mysqli_get_proto_info() o mysqli_get_connection_stats() quando hai bisogno di maggiori dettagli.