Signatur
Beschreibung
fbird_service_attach() öffnet eine Verbindung zum Firebird-Dienst-Manager (Service Manager), der administrative Aufgaben wie Datenbankwartung, Sicherungen, Wiederherstellungen und Benutzerverwaltung 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_*-Dienstfunktionen ü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
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);
?>
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);
?>
// 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.