Signatur
Beschreibung
mysqli_get_host_info() liefert eine Zeichenkette, die Informationen über den verwendeten MySQL-Server und den Verbindungstyp enthält. Typische Rückgabewerte sind z. B. Localhost via UNIX socket oder 192.168.1.1 via TCP/IP.
Die Funktion ist nützlich beim Debuggen oder Logging von Datenbankverbindungen, um zu prüfen, ob eine Verbindung über einen lokalen Unix-Socket oder über TCP/IP aufgebaut wurde. Bei produktiven Anwendungen kann so sichergestellt werden, dass die erwartete Verbindungsart genutzt wird.
Die Funktion kann sowohl prozedural als mysqli_get_host_info($mysqli) als auch objektorientiert als $mysqli->host_info verwendet werden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $mysql Pflicht | mysqli | Ein von mysqli_connect() oder mysqli_init() zurückgegebenes mysqli-Verbindungsobjekt. |
Rückgabewert
Localhost via UNIX socket oder hostname via TCP/IP.Beispiele
Verbindungstyp einer MySQL-Verbindung ausgeben
<?php
$mysqli = new mysqli('localhost', 'benutzer', 'passwort', 'datenbank');
if ($mysqli->connect_errno) {
echo 'Verbindungsfehler: ' . $mysqli->connect_error;
exit;
}
echo 'Verbindungsinfo: ' . mysqli_get_host_info($mysqli);
$mysqli->close();
Objektorientierter Zugriff über die Eigenschaft host_info
<?php
$mysqli = new mysqli('127.0.0.1', 'benutzer', 'passwort', 'datenbank');
if ($mysqli->connect_errno) {
echo 'Verbindungsfehler: ' . $mysqli->connect_error;
exit;
}
// Objektorientierter Zugriff
echo 'Host-Info: ' . $mysqli->host_info . PHP_EOL;
// Prüfung ob TCP/IP verwendet wird
if (str_contains($mysqli->host_info, 'TCP/IP')) {
echo 'Verbindung läuft über TCP/IP.';
} else {
echo 'Verbindung läuft über einen anderen Kanal (z. B. Unix-Socket).';
}
$mysqli->close();
// Wichtig · Fallstricke
Die Verwendung von 127.0.0.1 als Host erzwingt in der Regel eine TCP/IP-Verbindung, während localhost auf Unix-Systemen typischerweise einen Unix-Socket verwendet. Dieser Unterschied kann Performance-Auswirkungen haben, da Unix-Sockets in lokalen Szenarien schneller sind.
Die Funktion gibt immer eine Zeichenkette zurück und wirft keinen Fehler, solange das mysqli-Objekt gültig ist.