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