Start · Sprachen · PHP · Referenz · fbird_db_info

fbird_db_info

Funktion

Fordert Statistiken und Informationen über eine Firebird/InterBase-Datenbank vom Service-Manager an.

seit PHP 5.0.0 Kategorie: db

Signatur

fbird_db_info(resource $service_handle, string $db): string

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

Typ
string
Beschreibung
Gibt einen String mit den rohen Datenbankstatistiken und -informationen zurück, die vom Firebird-Service-Manager geliefert wurden. Im Fehlerfall wird 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);
Datenbankinfos: (Firebird-Rohdaten mit Datenbankstatistiken)

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.