Start · Sprachen · PHP · Referenz · pg_dbname

pg_dbname

Funktion

Gibt den Namen der Datenbank zurück, mit der die angegebene PostgreSQL-Verbindung verbunden ist.

seit PHP 4.0.0 Kategorie: db

Signatur

pg_dbname(PgSql\Connection $connection): string

Beschreibung

pg_dbname() liefert den Namen der PostgreSQL-Datenbank, auf die die übergebene Verbindungsressource zeigt. Die Funktion ist nützlich, wenn mehrere Datenbankverbindungen gleichzeitig offen sind und man prüfen möchte, welche Verbindung zu welcher Datenbank gehört.

Typische Anwendungsfälle sind Debugging, Logging oder Validierung der Verbindungskonfiguration zur Laufzeit. So lässt sich beispielsweise sicherstellen, dass eine Verbindung wirklich die gewünschte Produktions- oder Testdatenbank verwendet, bevor kritische Operationen ausgeführt werden.

Ab PHP 8.1 ist der Parameter vom Typ PgSql\Connection (ein dediziertes Objekt); in älteren PHP-Versionen wurde eine resource übergeben. Die Funktion gibt immer einen String zurück, sofern die Verbindung gültig ist.

Parameter

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

Rückgabewert

Typ
string
Beschreibung
Gibt den Namen der Datenbank als Zeichenkette zurück, mit der die übergebene Verbindung assoziiert ist.

Beispiele

Datenbankname einer bestehenden Verbindung ausgeben

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

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

$dbName = pg_dbname($conn);
echo 'Verbunden mit Datenbank: ' . $dbName;

pg_close($conn);
Verbunden mit Datenbank: meine_app

Verbindungsvalidierung bei mehreren Datenbankverbindungen

<?php
$connProd = pg_connect('host=prod-server dbname=produktion user=app password=geheim1');
$connTest = pg_connect('host=test-server dbname=test_db user=app password=geheim2');

$connections = [
    'Produktion' => $connProd,
    'Test'       => $connTest,
];

foreach ($connections as $label => $conn) {
    if ($conn !== false) {
        echo $label . ': ' . pg_dbname($conn) . PHP_EOL;
    } else {
        echo $label . ': Verbindung fehlgeschlagen' . PHP_EOL;
    }
}

// Sicherstellen, dass man nicht versehentlich auf der Produktionsdatenbank arbeitet
if (pg_dbname($connProd) !== 'produktion') {
    die('Falsche Produktionsdatenbank – Abbruch.');
}

pg_close($connProd);
pg_close($connTest);
Produktion: produktion Test: test_db

// Wichtig · Fallstricke

Versionshinweis: Ab PHP 8.1 erwartet die Funktion ein PgSql\Connection-Objekt anstelle einer resource. Code, der mit alten PHP-Versionen kompatibel sein muss, sollte dies berücksichtigen.

Wenn eine ungültige Verbindung übergeben wird, erzeugt PHP einen Fehler vom Typ E_WARNING. Es empfiehlt sich daher, den Rückgabewert von pg_connect() stets zu prüfen, bevor pg_dbname() aufgerufen wird.