Start · Sprachen · PHP · Referenz · db2_client_info

db2_client_info

Funktion

Liefert ein Objekt mit Eigenschaften des DB2-Datenbankclients, wie Treibername, Version und Betriebssystem.

seit PHP 5.1.0 Kategorie: db

Signatur

db2_client_info(resource $connection): stdClass|false

Beschreibung

db2_client_info() gibt ein stdClass-Objekt zurück, das Informationen über den lokalen DB2-Client enthält, der für die übergebene Datenbankverbindung verwendet wird. Die Eigenschaften beschreiben den installierten IBM DB2-Treiber sowie die Umgebung, in der der PHP-Prozess ausgeführt wird.

Die Funktion ist besonders nützlich zur Diagnose und Protokollierung: Man kann damit automatisiert prüfen, welcher DB2-Client-Treiber in einer Produktions- oder Testumgebung installiert ist, und so Versionskonflikte oder Kompatibilitätsprobleme erkennen.

Das zurückgegebene Objekt enthält unter anderem folgende Eigenschaften: APPL_CODEPAGE, CONN_CODEPAGE, DATA_SOURCE_NAME, DRIVER_NAME, DRIVER_ODBC_VER, DRIVER_VER, ODBC_SQL_CONFORMANCE, ODBC_VER. Diese Eigenschaften decken sowohl ODBC- als auch native DB2-Treiberinformationen ab.

Die Funktion ergänzt db2_server_info(), die entsprechende Informationen über den DB2-Server liefert. Beide Funktionen zusammen ermöglichen eine vollständige Bestandsaufnahme der Datenbankumgebung.

Parameter

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

Rückgabewert

Typ
stdClass|false
Beschreibung
Gibt bei Erfolg ein stdClass-Objekt mit Client-Eigenschaften zurück. Schlägt die Abfrage fehl (z. B. ungültige Verbindungsressource), wird false zurückgegeben.

Beispiele

Client-Informationen ausgeben

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

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

    if ($info) {
        echo 'Treibername:       ' . $info->DRIVER_NAME . PHP_EOL;
        echo 'Treiberversion:    ' . $info->DRIVER_VER . PHP_EOL;
        echo 'ODBC-Version:      ' . $info->ODBC_VER . PHP_EOL;
        echo 'ODBC-Treibervers.: ' . $info->DRIVER_ODBC_VER . PHP_EOL;
        echo 'SQL-Konformität:   ' . $info->ODBC_SQL_CONFORMANCE . PHP_EOL;
        echo 'Datenquellenname:  ' . $info->DATA_SOURCE_NAME . PHP_EOL;
        echo 'Verbindungs-CP:    ' . $info->CONN_CODEPAGE . PHP_EOL;
        echo 'Anwendungs-CP:     ' . $info->APPL_CODEPAGE . PHP_EOL;
    } else {
        echo 'Fehler beim Abrufen der Client-Informationen.';
    }

    db2_close($conn);
} else {
    echo 'Verbindung fehlgeschlagen: ' . db2_conn_errormsg();
}
Treibername: libdb2.a Treiberversion: 10.05.0008 ODBC-Version: 03.51.0000 ODBC-Treibervers.: 03.51 SQL-Konformität: EXTENDED Datenquellenname: SAMPLE Verbindungs-CP: 1208 Anwendungs-CP: 1208

Treiberversion für Kompatibilitätsprüfung auswerten

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

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

    if ($info) {
        // Mindestversion 10.x.x erforderlich
        $version = $info->DRIVER_VER;
        $hauptversion = (int) substr($version, 0, 2);

        if ($hauptversion >= 10) {
            echo 'DB2-Client-Treiber ist kompatibel (Version: ' . $version . ').';
        } else {
            echo 'Warnung: DB2-Client-Treiber ist veraltet (Version: ' . $version . ')!';
        }
    }

    db2_close($conn);
}
DB2-Client-Treiber ist kompatibel (Version: 10.05.0008).

// Wichtig · Fallstricke

Erweiterung erforderlich: Die Funktion db2_client_info() ist Teil der ibm_db2-Erweiterung, die separat installiert und in der php.ini aktiviert werden muss. Ohne diese Erweiterung ist die Funktion nicht verfügbar.

Verbindungsressource: Es muss eine gültige, aktive Verbindungsressource übergeben werden. Eine bereits geschlossene Verbindung führt zu false als Rückgabewert. Prüfen Sie den Rückgabewert stets auf false, bevor Sie auf die Eigenschaften des Objekts zugreifen, um Notice- oder Warning-Meldungen zu vermeiden.

Plattformunterschiede: Die konkreten Werte der zurückgegebenen Eigenschaften (insbesondere DRIVER_NAME) können je nach Betriebssystem variieren (Linux, Windows, AIX usw.).