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