Signatur
Beschreibung
ibase_db_info() kommuniziert über einen Service-Handle mit dem Firebird- oder InterBase-Datenbankserver und ruft statistische bzw. strukturelle Informationen über eine angegebene Datenbank ab. Die Funktion gehört zur InterBase-Extension (ibase_*) und setzt eine aktive Service-Verbindung voraus, die zuvor mit ibase_service_attach() geöffnet wurde.
Mit dem Parameter $action wird gesteuert, welche Art von Daten abgefragt wird. Typische Aktionskonstanten sind IBASE_STS_DATA_PAGES, IBASE_STS_DB_LOG, IBASE_STS_HDR_PAGES, IBASE_STS_IDX_PAGES und IBASE_STS_SYS_RELATIONS. Diese entsprechen den Optionen des Firebird-Kommandozeilentools gstat.
Die Funktion ist nützlich für Datenbankadministration und Monitoring: Sie erlaubt es, Seitenfüllgrade, Logdaten und Header-Informationen direkt aus PHP heraus abzurufen, ohne externe Tools bemühen zu müssen.
Hinweis: Die ibase_*-Funktionen wurden in PHP 8.0 aus dem PHP-Kern entfernt und stehen seitdem nur noch über die PECL-Extension ibase oder das Paket php8-interbase zur Verfügung. Für neue Projekte empfiehlt sich die Verwendung von PDO mit dem Firebird-Treiber.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $service_handle Pflicht | resource | Ein aktiver Service-Handle, der mit ibase_service_attach() geöffnet wurde. |
|
| $db Pflicht | string | Der vollständige Pfad zur Datenbankdatei auf dem Server, z. B. /var/db/meinedatenbank.fdb. |
|
| $action Pflicht | int | Eine der vordefinierten Konstanten, die den Typ der abzufragenden Statistik bestimmt. Mögliche Werte: IBASE_STS_DATA_PAGES, IBASE_STS_DB_LOG, IBASE_STS_HDR_PAGES, IBASE_STS_IDX_PAGES, IBASE_STS_SYS_RELATIONS. |
|
| $argument | int | 0 | Optionaler zusätzlicher Parameter für bestimmte Aktionen. Wird meist auf 0 belassen. |
Rückgabewert
false zurückgegeben.Beispiele
Datenbankstatistik über Service-Handle abrufen
<?php
// Service-Verbindung aufbauen
$service = ibase_service_attach('localhost', 'sysdba', 'masterkey');
if (!$service) {
die('Service-Verbindung fehlgeschlagen.');
}
$dbPath = '/var/firebird/meinedatenbank.fdb';
// Header-Seiteninformationen abrufen
$info = ibase_db_info($service, $dbPath, IBASE_STS_HDR_PAGES);
if ($info !== false) {
echo "Datenbankinfos (Header):\n";
echo $info;
} else {
echo 'Fehler beim Abrufen der Datenbankinfos.';
}
ibase_service_detach($service);
?>
Daten- und Index-Seiten-Statistik auslesen
<?php
$service = ibase_service_attach('localhost', 'sysdba', 'masterkey');
$dbPath = '/var/firebird/meinedatenbank.fdb';
$aktionen = [
'Datenseiten' => IBASE_STS_DATA_PAGES,
'Indexseiten' => IBASE_STS_IDX_PAGES,
'Systemtabellen' => IBASE_STS_SYS_RELATIONS,
];
foreach ($aktionen as $bezeichnung => $aktion) {
$ergebnis = ibase_db_info($service, $dbPath, $aktion);
echo "=== $bezeichnung ===\n";
echo ($ergebnis !== false ? $ergebnis : 'Fehler') . "\n";
}
ibase_service_detach($service);
?>
// Wichtig · Fallstricke
Deprecation/Entfernung: Die gesamte ibase_*-Extension wurde mit PHP 8.0 aus dem offiziellen PHP-Kern entfernt. Sie ist seitdem nur noch als PECL-Paket verfügbar. Bestehende Anwendungen sollten auf PDO_Firebird migriert werden.
Berechtigungen: Für den Zugriff auf Service-Funktionen benötigt der Datenbankbenutzer in der Regel SYSDBA-Rechte oder entsprechende Administratorrechte auf dem Firebird-Server.
Rückgabeformat: Der zurückgegebene String ist nicht strukturiert (kein JSON/XML), sondern ein rohes Textformat. Eine weitere Verarbeitung erfordert manuelles Parsen mit String-Funktionen wie preg_match() oder explode().