Start · Sprachen · PHP · Referenz · db2_server_info

db2_server_info

Funktion

Gibt ein Objekt mit Metadaten und Eigenschaften des verbundenen DB2-Datenbankservers zurück.

seit PHP 5.1.0 Kategorie: db

Signatur

db2_server_info(resource $connection): stdClass|false

Beschreibung

db2_server_info() liefert ein stdClass-Objekt, das zahlreiche Informationen über den DB2-Datenbankserver enthält, mit dem die übergebene Verbindung aufgebaut wurde. Typische Eigenschaften sind Datenbankproduktname, Versionsnummer, unterstützte SQL-Konformitätsstufen sowie weitere Fähigkeiten des Servers.

Die Funktion ist besonders nützlich, wenn eine Anwendung unterschiedliche DB2-Versionen oder -Varianten unterstützen muss und das Verhalten abhängig von Servermerkmalen anpassen soll – z. B. ob bestimmte SQL-Features verfügbar sind oder welche maximalen Identifier-Längen gelten.

Zu den häufig genutzten Eigenschaften des zurückgegebenen Objekts gehören unter anderem: DBMS_NAME (Produktname), DBMS_VER (Versionsstring), DB_CODEPAGE (Codepage der Datenbank), MAX_COL_NAME_LEN, MAX_TABLE_NAME_LEN, SQL_CONFORMANCE sowie viele weitere, die den Funktionsumfang des Servers beschreiben.

Die Funktion setzt eine aktive Datenbankverbindung voraus, die über db2_connect() oder db2_pconnect() erzeugt wurde. Im Fehlerfall – etwa bei ungültiger Verbindungsressource – wird false zurückgegeben.

Parameter

Name Typ Default Beschreibung
$connection Pflicht resource Eine aktive DB2-Datenbankverbindung, die mit db2_connect() oder db2_pconnect() erzeugt wurde.

Rückgabewert

Typ
stdClass|false
Beschreibung
Ein stdClass-Objekt mit Eigenschaften des Datenbankservers bei Erfolg, oder false bei einem Fehler (z. B. ungültige Verbindungsressource).

Beispiele

Serverversion und Produktname auslesen

<?php
$conn = db2_connect('SAMPLE', 'db2user', 'geheimesPasswort');

if ($conn) {
    $serverInfo = db2_server_info($conn);

    if ($serverInfo) {
        echo 'Datenbankprodukt : ' . $serverInfo->DBMS_NAME . PHP_EOL;
        echo 'Serverversion    : ' . $serverInfo->DBMS_VER . PHP_EOL;
        echo 'SQL-Konformität  : ' . $serverInfo->SQL_CONFORMANCE . PHP_EOL;
    } else {
        echo 'Serverinformationen konnten nicht abgerufen werden.';
    }

    db2_close($conn);
} else {
    echo 'Verbindung fehlgeschlagen: ' . db2_conn_errormsg();
}
Datenbankprodukt : DB2/LINUXX8664 Serverversion : 11.05.0800 SQL-Konformität : CORE

Featureerkennung: maximale Tabellennamenslänge prüfen

<?php
$conn = db2_connect('SAMPLE', 'db2user', 'geheimesPasswort');

if ($conn) {
    $info = db2_server_info($conn);

    if ($info) {
        $maxLen = $info->MAX_TABLE_NAME_LEN;
        echo 'Maximale Tabellennamenslänge: ' . $maxLen . ' Zeichen' . PHP_EOL;

        // Anwendungslogik anpassen
        if ($maxLen >= 128) {
            echo 'Lange Tabellennamen werden unterstützt.' . PHP_EOL;
        } else {
            echo 'Tabellennamen auf ' . $maxLen . ' Zeichen beschränken.' . PHP_EOL;
        }
    }

    db2_close($conn);
}
Maximale Tabellennamenslänge: 128 Zeichen Lange Tabellennamen werden unterstützt.

// Wichtig · Fallstricke

Verfügbarkeit: db2_server_info() ist Teil der ibm_db2-Erweiterung, die separat installiert werden muss. Ohne diese Erweiterung ist die Funktion nicht verfügbar.

Eigenschaftsnamen: Die Eigenschaften des zurückgegebenen Objekts sind im ODBC/CLI-Standard definiert und können je nach DB2-Version variieren. Es empfiehlt sich, vor dem Zugriff auf eine Eigenschaft zu prüfen, ob sie mittels isset() gesetzt ist.

Abgrenzung: Für clientseitige Informationen (Treiber-Version, Betriebssystem des Clients usw.) steht db2_client_info() zur Verfügung.