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