Start · Sprachen · PHP · Referenz · ibase_server_info

ibase_server_info

Funktion

Fordert Informationen über einen Firebird/InterBase-Datenbankserver an und gibt diese als Zeichenkette zurück.

seit PHP 5.0.0 Kategorie: db

Signatur

ibase_server_info(resource $service_handle, int $action): string

Beschreibung

ibase_server_info() ruft verschiedene Informationen über einen laufenden Firebird- oder InterBase-Datenbankserver ab. Dazu gehören unter anderem die Serverversion, die Implementierungsdetails, die Anzahl der aktiven Benutzer sowie der Pfad zur Serverdatenbank.

Die Funktion benötigt ein gültiges Service-Handle, das zuvor mit ibase_service_attach() geöffnet wurde. Über den Parameter $action wird gesteuert, welche Art von Information abgefragt werden soll. Mögliche Konstanten sind z. B. IBASE_SVC_SERVER_VERSION, IBASE_SVC_IMPLEMENTATION, IBASE_SVC_GET_ENV, IBASE_SVC_GET_ENV_LOCK, IBASE_SVC_GET_ENV_MSG und IBASE_SVC_USER_DBPATH.

Diese Funktion ist besonders nützlich für Administrations- und Monitoring-Tools, die den Status eines Firebird/InterBase-Servers automatisiert überwachen oder protokollieren sollen, ohne direkt auf Betriebssystemebene zugreifen zu müssen.

Hinweis: Die ibase_*-Funktionen sind seit PHP 7.4 aus dem PHP-Kern entfernt und stehen nur noch über die PECL-Erweiterung ibase bzw. FirebirdSQL/php-firebird zur Verfügung.

Parameter

Name Typ Default Beschreibung
$service_handle Pflicht resource Ein gültiges Service-Handle, das mit ibase_service_attach() erzeugt wurde und die Verbindung zum Firebird/InterBase-Dienst repräsentiert.
$action Pflicht int Eine Konstante, die angibt, welche Serverinformation abgerufen werden soll. Gültige Werte sind z. B. IBASE_SVC_SERVER_VERSION, IBASE_SVC_IMPLEMENTATION, IBASE_SVC_GET_ENV, IBASE_SVC_GET_ENV_LOCK, IBASE_SVC_GET_ENV_MSG oder IBASE_SVC_USER_DBPATH.

Rückgabewert

Typ
string
Beschreibung
Gibt die angeforderte Serverinformation als Zeichenkette zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Serverversion eines Firebird-Servers abfragen

<?php
// Verbindung zum Firebird Service Manager herstellen
$serviceHandle = ibase_service_attach('localhost', 'sysdba', 'masterkey');

if ($serviceHandle) {
    // Serverversion abfragen
    $version = ibase_server_info($serviceHandle, IBASE_SVC_SERVER_VERSION);
    echo 'Serverversion: ' . $version . PHP_EOL;

    // Implementierungsdetails abfragen
    $impl = ibase_server_info($serviceHandle, IBASE_SVC_IMPLEMENTATION);
    echo 'Implementierung: ' . $impl . PHP_EOL;

    // Service-Handle wieder freigeben
    ibase_service_detach($serviceHandle);
} else {
    echo 'Verbindung zum Service Manager fehlgeschlagen.';
}
Serverversion: WI-V6.3.5.4926 Firebird 2.5 Implementierung: Firebird/x86/Windows NT (89), version "WI-V6.3.5.4926 Firebird 2.5"

Datenbankpfad des Benutzers ermitteln

<?php
$serviceHandle = ibase_service_attach('db.example.com', 'sysdba', 'masterkey');

if ($serviceHandle) {
    $dbPath = ibase_server_info($serviceHandle, IBASE_SVC_USER_DBPATH);
    echo 'Benutzer-Datenbankpfad: ' . $dbPath . PHP_EOL;

    $envPath = ibase_server_info($serviceHandle, IBASE_SVC_GET_ENV);
    echo 'Umgebungspfad: ' . $envPath . PHP_EOL;

    ibase_service_detach($serviceHandle);
} else {
    echo 'Verbindung fehlgeschlagen.';
}
Benutzer-Datenbankpfad: C:\Program Files\Firebird\Firebird_2_5\security2.fdb Umgebungspfad: C:\Program Files\Firebird\Firebird_2_5

// Wichtig · Fallstricke

Deprecation-Hinweis: Die gesamte ibase_*-Erweiterung wurde mit PHP 7.4 als veraltet markiert und in PHP 8.0 aus dem offiziellen PHP-Kern entfernt. Für aktuelle Projekte sollte die PECL-Erweiterung interbase oder die Bibliothek FirebirdSQL/php-firebird genutzt werden.

Sicherheitshinweis: Das Service-Handle erfordert Administrator-Zugangsdaten (z. B. sysdba). Zugangsdaten sollten niemals im Quellcode gespeichert, sondern über Umgebungsvariablen oder sichere Konfigurationsdateien bereitgestellt werden.

Der Rückgabewert kann je nach Firebird-Version und Betriebssystem unterschiedlich formatiert sein. Eine robuste Auswertung sollte daher keine festen Zeichenketten-Vergleiche verwenden, sondern reguläre Ausdrücke oder Teilstring-Suchen einsetzen.