Signatur
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
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);
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);
// 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.