Start · Sprachen · PHP · Referenz · mysqli_get_host_info

mysqli_get_host_info

Funktion

Gibt eine Zeichenkette zurück, die den Hostnamen und den Verbindungstyp der aktuellen MySQL-Verbindung beschreibt.

seit PHP 5.0.0 Kategorie: db

Signatur

mysqli_get_host_info(mysqli $mysql): string

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

Typ
string
Beschreibung
Eine Zeichenkette mit dem Hostnamen und dem Verbindungstyp, z. B. 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();
Verbindungsinfo: Localhost via UNIX socket

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();
Host-Info: 127.0.0.1 via TCP/IP Verbindung läuft über TCP/IP.

// 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.