Start · Sprachen · PHP · Referenz · mysql_get_host_info

mysql_get_host_info

Funktion

Gibt Informationen zur aktuellen MySQL-Verbindung zurück, einschließlich Hostname und Verbindungstyp.

seit PHP 4.0.0 Kategorie: db

Signatur

mysql_get_host_info(resource $link_identifier = null): string|false

Beschreibung

mysql_get_host_info() liefert eine Zeichenkette, die den Hostnamen des MySQL-Servers sowie den verwendeten Verbindungstyp (z. B. TCP/IP oder Unix-Socket) beschreibt. Diese Funktion ist nützlich zur Diagnose und zum Protokollieren von Datenbankverbindungen.

Die zurückgegebene Zeichenkette enthält typischerweise Informationen in der Form Localhost via UNIX socket oder hostname via TCP/IP, abhängig davon, wie die Verbindung zum Server hergestellt wurde.

Wird kein link_identifier angegeben, wird die zuletzt geöffnete Verbindung verwendet. Ist keine offene Verbindung vorhanden, wird versucht, eine neue mit mysql_connect() herzustellen.

Wichtig: Die gesamte mysql_*-Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 vollständig entfernt. Für neue Projekte sollte stattdessen mysqli_get_host_info() oder PDO verwendet werden.

Parameter

Name Typ Default Beschreibung
$link_identifier resource null Eine MySQL-Verbindungsressource, die von mysql_connect() zurückgegeben wurde. Wird dieser Parameter weggelassen, wird die zuletzt geöffnete Verbindung verwendet.

Rückgabewert

Typ
string|false
Beschreibung
Gibt eine Zeichenkette mit dem Hostnamen und dem Verbindungstyp zurück (z. B. Localhost via UNIX socket). Im Fehlerfall wird false zurückgegeben.

Beispiele

Verbindungsinformationen für eine MySQL-Verbindung ausgeben

<?php
$link = mysql_connect('localhost', 'root', 'geheimesPasswort');
if (!$link) {
    die('Verbindung fehlgeschlagen: ' . mysql_error());
}

$hostInfo = mysql_get_host_info($link);
echo 'Host-Info: ' . $hostInfo;

mysql_close($link);
?>
Host-Info: Localhost via UNIX socket

Verbindungstyp (TCP/IP oder Socket) erkennen

<?php
$link = mysql_connect('127.0.0.1', 'root', 'geheimesPasswort');
if (!$link) {
    die('Verbindung fehlgeschlagen: ' . mysql_error());
}

$hostInfo = mysql_get_host_info($link);
if (strpos($hostInfo, 'TCP/IP') !== false) {
    echo 'Verbindung erfolgt über TCP/IP.';
} elseif (strpos($hostInfo, 'UNIX socket') !== false) {
    echo 'Verbindung erfolgt über UNIX-Socket.';
} else {
    echo 'Unbekannter Verbindungstyp: ' . $hostInfo;
}

mysql_close($link);
?>
Verbindung erfolgt über TCP/IP.

// Wichtig · Fallstricke

Deprecation-Hinweis: Die mysql_*-Erweiterung wurde in PHP 5.5.0 als veraltet (deprecated) markiert und in PHP 7.0.0 vollständig entfernt. Für aktuelle Projekte sollte mysqli_get_host_info() oder PDO eingesetzt werden. Code, der diese Funktion verwendet, lässt sich unter PHP 7+ nicht mehr ausführen.

Wenn kein link_identifier übergeben wird und keine aktive Verbindung besteht, wird intern versucht, mysql_connect() ohne Parameter aufzurufen, was in der Regel fehlschlägt und eine Warnung erzeugt.