Signatur
Beschreibung
fbird_drop_db() löscht die mit dem angegebenen Verbindungs-Handle verknüpfte Firebird- oder InterBase-Datenbank dauerhaft vom Server. Die Funktion schließt zuvor alle aktiven Verbindungen zu dieser Datenbank und entfernt anschließend die zugehörige Datenbankdatei.
Diese Funktion ist das programmatische Äquivalent zum SQL-Befehl DROP DATABASE. Sie eignet sich besonders für automatisierte Test-Umgebungen, bei denen nach dem Testlauf Datenbanken wieder aufgeräumt werden sollen, oder für administrative Skripte zur Datenbankverwaltung.
Um die Funktion erfolgreich ausführen zu können, muss der verbundene Datenbankbenutzer über ausreichende Berechtigungen verfügen (in der Regel SYSDBA oder der ursprüngliche Eigentümer der Datenbank). Der Löschvorgang ist irreversibel – alle Daten, Tabellen, Prozeduren und sonstigen Datenbankobjekte werden endgültig vernichtet.
Hinweis: fbird_drop_db() ist ein Alias für ibase_drop_db(). Die Interbase/Firebird-Erweiterung wird seit PHP 7.4 nicht mehr als Kernbestandteil mitgeliefert und ist als PECL-Paket (ibase) verfügbar.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $link | resource | Eine aktive Datenbankverbindung, wie sie von fbird_connect() oder fbird_pconnect() zurückgegeben wurde. Wird kein Handle übergeben, wird die zuletzt geöffnete Verbindung verwendet. |
Rückgabewert
true zurück, wenn die Datenbank erfolgreich gelöscht wurde. Bei einem Fehler (z. B. fehlende Berechtigungen oder ungültiges Verbindungs-Handle) wird false zurückgegeben und ein Fehler ausgelöst.Beispiele
Datenbank nach dem Testlauf löschen
<?php
// Verbindung zur Testdatenbank herstellen
$connection = fbird_connect(
'localhost:/var/firebird/test_db.fdb',
'SYSDBA',
'masterkey'
);
if (!$connection) {
die('Verbindung zur Datenbank fehlgeschlagen: ' . fbird_errmsg());
}
echo "Verbindung hergestellt. Lösche Testdatenbank ...\n";
// Datenbank unwiderruflich löschen
if (fbird_drop_db($connection)) {
echo "Testdatenbank wurde erfolgreich gelöscht.\n";
} else {
echo "Fehler beim Löschen: " . fbird_errmsg() . "\n";
}
Datenbank über die zuletzt geöffnete Verbindung löschen
<?php
// Verbindung öffnen – wird als aktive Standard-Verbindung gespeichert
fbird_connect(
'localhost:/var/firebird/old_db.fdb',
'SYSDBA',
'masterkey'
);
// Löscht die zuletzt geöffnete Datenbank (kein explizites Handle notwendig)
if (fbird_drop_db()) {
echo "Datenbank wurde gelöscht.\n";
} else {
echo "Fehler: " . fbird_errmsg() . "\n";
}
// Wichtig · Fallstricke
Sicherheitshinweis: Da fbird_drop_db() alle Daten und Strukturen der Datenbank unwiderruflich löscht, sollte die Funktion niemals mit benutzerseitig kontrollierten Verbindungsparametern aufgerufen werden. Stellen Sie stets sicher, dass das verwendete Verbindungs-Handle tatsächlich auf die gewünschte Datenbank zeigt.
Berechtigungen: Nur Benutzer mit SYSDBA-Rechten oder der Datenbankbesitzer können eine Datenbank löschen. Ein normaler Benutzer erhält einen Berechtigungsfehler.
Deprecation: Die ibase_*/fbird_*-Erweiterung wurde in PHP 7.4 aus dem PHP-Kern entfernt. Für PHP 8.x steht das PECL-Paket ibase bereit. Alternativ bietet sich der Einsatz von PDO mit dem Firebird-Treiber an.