Start · Sprachen · PHP · Referenz · pg_options

pg_options

Funktion

Gibt die Verbindungsoptionen zurück, die beim Aufbau der aktuellen PostgreSQL-Verbindung angegeben wurden.

seit PHP 4.0.0 Kategorie: db

Signatur

pg_options(PgSql\Connection $connection = ?): string

Beschreibung

pg_options() liefert einen String mit den Verbindungsoptionen, die beim Verbindungsaufbau über pg_connect() oder pg_pconnect() übergeben wurden. Diese Optionen entsprechen dem options-Parameter des libpq-Verbindungsstrings und können z. B. Server-seitige Konfigurationsparameter enthalten.

Die Funktion ist nützlich, um zu überprüfen, welche Verbindungsparameter tatsächlich für eine bestehende Verbindung verwendet werden, zum Beispiel in Debug-Szenarien oder beim Logging von Verbindungsdetails in mehrschichtigen Anwendungen mit unterschiedlichen Datenbankverbindungen.

Wird kein $connection-Parameter übergeben, verwendet die Funktion die zuletzt geöffnete Verbindung. Falls keine Verbindung vorhanden ist, gibt die Funktion false zurück. In modernen PHP-Versionen (ab PHP 8.1) ist das Übergeben von null als Verbindung deprecated.

Parameter

Name Typ Default Beschreibung
$connection PgSql\Connection Eine PostgreSQL-Verbindungsinstanz (PgSql\Connection), zurückgegeben von pg_connect() oder pg_pconnect(). Wird der Parameter weggelassen, wird die zuletzt geöffnete Verbindung verwendet.

Rückgabewert

Typ
string
Beschreibung
Gibt einen String mit den Verbindungsoptionen zurück. Wurden keine besonderen Optionen beim Verbindungsaufbau gesetzt, wird ein leerer String zurückgegeben. Bei einem Fehler (z. B. ungültige Verbindung) wird false zurückgegeben.

Beispiele

Verbindungsoptionen einer aktiven PostgreSQL-Verbindung ausgeben

<?php
$conn = pg_connect("host=localhost dbname=testdb user=postgres password=secret options='--client_encoding=UTF8'");

if (!$conn) {
    die('Verbindung fehlgeschlagen');
}

$options = pg_options($conn);
echo 'Verbindungsoptionen: ' . $options;

pg_close($conn);
Verbindungsoptionen: --client_encoding=UTF8

Verbindungsdetails debuggen und vergleichen

<?php
$conn1 = pg_connect("host=localhost dbname=db1 user=user1 options='--application_name=MyApp'");
$conn2 = pg_connect("host=localhost dbname=db2 user=user2");

echo 'Optionen Verbindung 1: ' . pg_options($conn1) . PHP_EOL;
echo 'Optionen Verbindung 2: ' . pg_options($conn2) . PHP_EOL;

pg_close($conn1);
pg_close($conn2);
Optionen Verbindung 1: --application_name=MyApp Optionen Verbindung 2:

// Wichtig · Fallstricke

In PHP 8.1 wurde der Typ des Verbindungsparameters von resource zu PgSql\Connection geändert. Das Übergeben eines resource-Wertes ist seitdem deprecated.

Die zurückgegebenen Optionen spiegeln nur die im Verbindungsstring angegebenen options-Werte wider und nicht alle verwendeten Verbindungsparameter wie Host, Port oder Datenbank — für diese gibt es separate Funktionen wie pg_host(), pg_port() und pg_dbname().