Start · Sprachen · PHP · Referenz · pg_port

pg_port

Funktion

Gibt die Portnummer zurück, über die eine PostgreSQL-Verbindung aufgebaut wurde.

seit PHP 4.0.0 Kategorie: db

Signatur

pg_port(PgSql\Connection $connection): string

Beschreibung

pg_port() liest die Portnummer aus, die beim Aufbau der angegebenen PostgreSQL-Verbindung verwendet wurde. Typischerweise ist dies der Standard-PostgreSQL-Port 5432, sofern bei pg_connect() oder pg_pconnect() kein abweichender Port angegeben wurde.

Die Funktion ist nützlich, wenn eine Anwendung mehrere Datenbankverbindungen zu unterschiedlichen Hosts oder Ports verwaltet und zur Laufzeit feststellen muss, auf welchem Port eine bestimmte Verbindung läuft – etwa für Logging, Debugging oder dynamisches Connection-Management.

Der Rückgabewert ist stets ein string, auch wenn der Wert numerisch erscheint. Ab PHP 8.1 erwartet die Funktion ein Objekt vom Typ PgSql\Connection statt einer Ressource.

Parameter

Name Typ Default Beschreibung
$connection Pflicht PgSql\Connection Eine aktive PostgreSQL-Verbindung, die zuvor mit pg_connect() oder pg_pconnect() hergestellt wurde.

Rückgabewert

Typ
string
Beschreibung
Gibt die Portnummer der Verbindung als string zurück, z. B. '5432'. Kann ein leerer String sein, wenn die Portnummer nicht ermittelt werden kann.

Beispiele

Portnummer einer bestehenden Verbindung ausgeben

<?php
$conn = pg_connect('host=localhost port=5432 dbname=mydb user=postgres password=secret');

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

$port = pg_port($conn);
echo 'Verbundener Port: ' . $port . PHP_EOL;

pg_close($conn);
Verbundener Port: 5432

Port bei mehreren Verbindungen unterscheiden

<?php
$conn1 = pg_connect('host=db1.example.com port=5432 dbname=shop user=app password=secret1');
$conn2 = pg_connect('host=db2.example.com port=5433 dbname=analytics user=app password=secret2');

if ($conn1 && $conn2) {
    echo 'Verbindung 1 läuft auf Port: ' . pg_port($conn1) . PHP_EOL;
    echo 'Verbindung 2 läuft auf Port: ' . pg_port($conn2) . PHP_EOL;
}

pg_close($conn1);
pg_close($conn2);
Verbindung 1 läuft auf Port: 5432 Verbindung 2 läuft auf Port: 5433

// Wichtig · Fallstricke

Ab PHP 8.1 wurde der Verbindungstyp von resource auf PgSql\Connection umgestellt. Älterer Code, der eine Ressource übergibt, muss entsprechend angepasst werden, da andernfalls ein TypeError ausgelöst wird.

Die Funktion gibt den Port als String zurück. Falls ein Vergleich mit einem Integer nötig ist, sollte ein expliziter Cast ((int) pg_port($conn)) oder intval() verwendet werden, um unerwartetes Verhalten beim typschwachen Vergleich (==) zu vermeiden.