Start · Sprachen · PHP · Referenz · fbird_service_attach

fbird_service_attach

Funktion

Verbindet eine PHP-Anwendung mit dem Firebird-Dienst-Manager auf einem lokalen oder entfernten Server.

seit PHP 5.0.0 Kategorie: db

Signatur

fbird_service_attach(string $host, string $dba_username, string $dba_password, int $timeout = 0): resource|false

Beschreibung

fbird_service_attach() öffnet eine Verbindung zum Firebird-Dienst-Manager (Service Manager), der administrative Aufgaben wie Datenbankwartung, Sicherungen, Wiederherstellungen und Benutzer­verwaltung ermöglicht. Der Dienst-Manager ist ein separater Einstiegspunkt von einer normalen Datenbankverbindung.

Der Parameter $host gibt den Server-Host an. Für eine lokale Verbindung kann 'localhost' oder '127.0.0.1' verwendet werden. Entfernte Server werden über deren Hostname oder IP-Adresse angesprochen. Der angemeldete Benutzer muss Firebird-DBA-Rechte besitzen, da der Dienst-Manager nur privilegierten Benutzern zugänglich ist.

Das zurückgegebene Ressourcen-Handle wird anschließend an weitere ibase_*- bzw. fbird_*-Dienst­funktionen übergeben, z. B. fbird_backup(), fbird_restore() oder fbird_maintain_db(). Nach Abschluss der administrativen Operationen sollte die Verbindung mit fbird_service_detach() ordnungsgemäß geschlossen werden.

Hinweis: fbird_service_attach() ist ein Alias für ibase_service_attach(). Die Firebird-Erweiterung wurde in PHP 8.4 als eigenständige PECL-Erweiterung ausgelagert, weshalb die Verfügbarkeit je nach PHP-Version und Kompilierung variiert.

Parameter

Name Typ Default Beschreibung
$host Pflicht string Hostname oder IP-Adresse des Firebird-Servers, z. B. 'localhost' oder '192.168.1.10'.
$dba_username Pflicht string Benutzername eines Firebird-DBA-Kontos, typischerweise 'SYSDBA'.
$dba_password Pflicht string Passwort des angegebenen DBA-Benutzers. Sollte niemals hartcodiert, sondern aus einer sicheren Konfiguration bezogen werden.
$timeout int 0 Verbindungs-Timeout in Sekunden. Der Wert 0 bedeutet kein Timeout (unbegrenzte Wartezeit).

Rückgabewert

Typ
resource|false
Beschreibung
Gibt bei Erfolg ein Dienst-Manager-Ressourcen-Handle zurück, das an weitere fbird_*-Dienstfunktionen übergeben werden kann. Bei einem Fehler (z. B. falsche Zugangsdaten oder nicht erreichbarer Server) wird false zurückgegeben.

Beispiele

Verbindung zum lokalen Firebird-Dienst-Manager herstellen

<?php
$service = fbird_service_attach('localhost', 'SYSDBA', 'masterkey');

if ($service === false) {
    die('Verbindung zum Firebird-Dienst-Manager fehlgeschlagen.');
}

echo 'Verbindung erfolgreich hergestellt.';

// Ressource nach Verwendung freigeben
fbird_service_detach($service);
?>
Verbindung erfolgreich hergestellt.

Datenbank-Backup über den Dienst-Manager ausführen

<?php
// Zugangsdaten aus sicherer Konfiguration laden
$host     = 'db.example.com';
$username = 'SYSDBA';
$password = getenv('FIREBIRD_DBA_PASSWORD');

$service = fbird_service_attach($host, $username, $password);

if ($service === false) {
    die('Fehler: Konnte keine Verbindung zum Dienst-Manager aufbauen.');
}

// Datenbank sichern
$result = fbird_backup(
    $service,
    '/var/firebird/data/mydb.fdb',
    '/var/backups/mydb_' . date('Ymd') . '.fbk'
);

if ($result !== false) {
    echo 'Backup erfolgreich erstellt.';
} else {
    echo 'Backup fehlgeschlagen.';
}

fbird_service_detach($service);
?>
Backup erfolgreich erstellt.

// Wichtig · Fallstricke

Sicherheitshinweis: Die DBA-Zugangsdaten dürfen niemals im Quellcode hartcodiert werden. Verwende Umgebungsvariablen (getenv()), eine verschlüsselte Konfigurationsdatei oder einen Secret-Manager, um Passwörter zu speichern.

Verfügbarkeit: Die Funktion setzt voraus, dass die PHP-Firebird-Erweiterung (ext/interbase oder ab PHP 8.0 ext/fbird) kompiliert und aktiviert ist. In PHP 8.4 wurde die Erweiterung vollständig in PECL ausgelagert — eine manuelle Installation über PECL ist dann erforderlich.

Berechtigungen: Der Dienst-Manager akzeptiert ausschließlich Verbindungen von Benutzern mit DBA-Rechten. Ein normaler Datenbankbenutzer kann sich nicht am Dienst-Manager anmelden.

fbird_service_attach() ist ein Alias für ibase_service_attach(). Beide Namen sind funktional identisch.