Start · Sprachen · PHP · Referenz · pg_host

pg_host

Funktion

Gibt den Hostnamen des PostgreSQL-Servers zurück, zu dem die angegebene Verbindung aufgebaut wurde.

seit PHP 4.0.0 Kategorie: db

Signatur

pg_host(PgSql\Connection $connection): string

Beschreibung

pg_host() liefert den Hostnamen oder die IP-Adresse des PostgreSQL-Servers, mit dem eine bestehende Verbindung hergestellt wurde. Die Funktion ist nützlich, wenn mehrere Datenbankverbindungen zu unterschiedlichen Hosts bestehen und zur Laufzeit ermittelt werden muss, welcher Server hinter einer bestimmten Verbindungsressource steckt.

Ein typischer Anwendungsfall ist die Diagnose und das Logging: In Verbindung mit pg_dbname() und pg_port() lässt sich so eine vollständige Übersicht der Verbindungsparameter ausgeben, ohne die ursprüngliche Konfiguration erneut lesen zu müssen.

Wurde die Verbindung über einen Unix-Domain-Socket hergestellt (also ohne explizite Hostangabe), gibt pg_host() einen leeren String zurück. Ab PHP 8.1 ist der Parameter vom Typ PgSql\Connection statt der zuvor verwendeten Ressource.

Parameter

Name Typ Default Beschreibung
$connection Pflicht PgSql\Connection Eine geöffnete PostgreSQL-Verbindung, die z. B. von pg_connect() oder pg_pconnect() zurückgegeben wurde.

Rückgabewert

Typ
string
Beschreibung
Gibt den Hostnamen oder die IP-Adresse des verbundenen PostgreSQL-Servers als String zurück. Wurde die Verbindung über einen Unix-Socket aufgebaut, wird ein leerer String zurückgegeben.

Beispiele

Verbindungs-Host ermitteln und ausgeben

<?php
$conn = pg_connect('host=db.example.com port=5432 dbname=shop user=admin password=geheim');

if ($conn === false) {
    die('Verbindung fehlgeschlagen.');
}

$host = pg_host($conn);
echo 'Verbunden mit Host: ' . htmlspecialchars($host);

pg_close($conn);
Verbunden mit Host: db.example.com

Verbindungsdetails für Logging zusammenstellen

<?php
$conn = pg_connect('host=192.168.1.10 port=5432 dbname=cms user=cms_user password=secret');

if ($conn === false) {
    die('Verbindung konnte nicht hergestellt werden.');
}

$info = sprintf(
    'Host: %s | Port: %s | Datenbank: %s | Benutzer: %s',
    pg_host($conn),
    pg_port($conn),
    pg_dbname($conn),
    pg_options($conn)
);

error_log('[DB-Verbindung] ' . $info);
echo $info;

pg_close($conn);
Host: 192.168.1.10 | Port: 5432 | Datenbank: cms | Benutzer:

// Wichtig · Fallstricke

Bei Verwendung von Unix-Domain-Sockets (z. B. pg_connect('dbname=mydb') ohne host=-Angabe) gibt pg_host() einen leeren String zurück – dies ist kein Fehler, sondern das erwartete Verhalten.

Ab PHP 8.1 ersetzt die Klasse PgSql\Connection den früheren Typ resource. Älterer Code, der auf den Ressourcentyp prüft, muss ggf. angepasst werden.