Signatur
Beschreibung
fbird_db_info() ruft über einen aktiven Service-Manager-Handle Informationen und Statistiken zu einer bestimmten Firebird- oder InterBase-Datenbank ab. Der Rückgabewert enthält Rohdaten, die vom Firebird-Dienst geliefert werden, darunter z. B. Informationen über Datenbankseiten, Transaktionen und andere interne Metriken.
Um diese Funktion nutzen zu können, muss zuvor mit ibase_service_attach() (bzw. fbird_service_attach()) eine Verbindung zum Firebird-Service-Manager hergestellt worden sein. Der dabei erhaltene Service-Handle wird als erstes Argument übergeben.
Diese Funktion ist vor allem für Datenbankadministratoren nützlich, die Informationen über den Zustand einer Datenbank programmatisch abfragen möchten, ohne auf externe Tools wie gstat zurückgreifen zu müssen.
Hinweis: fbird_db_info() ist ein Alias für ibase_db_info(). Beide Funktionen sind Teil der Firebird/InterBase-Erweiterung, die in PHP ab Version 8.4 als PECL-Paket ausgelagert wurde.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $service_handle Pflicht | resource | Ein aktiver Service-Manager-Handle, der zuvor mit ibase_service_attach() oder fbird_service_attach() erzeugt wurde. |
|
| $db Pflicht | string | Pfad zur Datenbankdatei auf dem Server, über die Informationen abgerufen werden sollen. Angabe als absoluter Pfad auf dem Datenbankserver. |
Rückgabewert
false zurückgegeben.Beispiele
Datenbankstatistiken abrufen und ausgeben
<?php
// Verbindung zum Firebird Service Manager herstellen
$service = ibase_service_attach('localhost', 'sysdba', 'masterkey');
if ($service === false) {
die('Verbindung zum Service Manager fehlgeschlagen.');
}
// Datenbankpfad auf dem Server
$dbPath = '/var/lib/firebird/data/meine_datenbank.fdb';
// Datenbankinfos abrufen
$info = fbird_db_info($service, $dbPath);
if ($info !== false) {
echo "Datenbankinfos:\n";
echo $info;
} else {
echo 'Fehler beim Abrufen der Datenbankinfos.';
}
// Service-Verbindung trennen
ibase_service_detach($service);
Mehrere Datenbanken auf Statistiken prüfen
<?php
$service = ibase_service_attach('localhost', 'sysdba', 'masterkey');
if ($service === false) {
die('Verbindung zum Service Manager fehlgeschlagen.');
}
$datenbanken = [
'/var/lib/firebird/data/db1.fdb',
'/var/lib/firebird/data/db2.fdb',
];
foreach ($datenbanken as $db) {
$info = fbird_db_info($service, $db);
if ($info !== false) {
echo "=== Statistiken für: $db ===\n";
echo $info . "\n\n";
} else {
echo "Fehler beim Abrufen der Infos für: $db\n";
}
}
ibase_service_detach($service);
// Wichtig · Fallstricke
Veraltete Funktion: Die fbird_*- und ibase_*-Funktionen wurden in PHP 8.0 als veraltet markiert und in PHP 8.4 aus dem PHP-Kern entfernt. Ab PHP 8.4 ist die Nutzung nur noch über das PECL-Paket ibase möglich.
Zugriffsrechte: Der angegebene Datenbankbenutzer (z. B. sysdba) muss über ausreichende Berechtigungen verfügen, um Service-Manager-Abfragen durchzuführen. Schützen Sie Zugangsdaten zum Service Manager besonders sorgfältig, da dieser weitreichende administrative Rechte bietet.
Der Rückgabewert ist ein roher Binär- oder Textstring, der je nach Firebird-Version unterschiedlich strukturiert sein kann und ggf. geparst werden muss.