Signatur
Beschreibung
ibase_drop_db() löscht die Datenbank, auf die die übergebene Verbindungs-Ressource verweist, vollständig und unwiderruflich vom Datenträger. Die Funktion schließt dabei alle aktiven Verbindungen zur Datenbank und entfernt die Datenbankdatei(en) auf Betriebssystemebene.
Sie ist vor allem in Test- und Deployment-Szenarien nützlich, wenn Datenbanken programmatisch erstellt und nach Gebrauch wieder entfernt werden sollen. Im Produktiveinsatz sollte sie nur nach expliziter Benutzerbestätigung und mit höchster Vorsicht eingesetzt werden, da keine Wiederherstellung ohne Backup möglich ist.
Wird kein Verbindungs-Parameter übergeben, verwendet die Funktion die zuletzt geöffnete Verbindung. Der aufrufende Datenbankbenutzer benötigt entsprechende Administrationsrechte (SYSDBA oder Eigentümer der Datenbank), um die Datenbank löschen zu dürfen.
Hinweis: Die gesamte ibase_*-Erweiterung wurde in PHP 8.0 aus dem PHP-Kern entfernt und steht seitdem nur noch über das PECL-Paket ibase bzw. interbase zur Verfügung.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $connection | resource | null | Eine gültige Firebird/InterBase-Verbindungs-Ressource, die zuvor mit ibase_connect() oder ibase_pconnect() geöffnet wurde. Wird kein Wert ü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ültige Verbindung) wird false zurückgegeben und ein Fehler ausgegeben.Beispiele
Datenbank nach Verarbeitung löschen
<?php
// Verbindung zur Datenbank herstellen
$connection = ibase_connect(
'/var/firebird/testdb.fdb',
'sysdba',
'masterkey'
);
if (!$connection) {
die('Verbindung fehlgeschlagen: ' . ibase_errmsg());
}
// Datenbankoperationen durchführen ...
// Datenbank endgültig löschen
if (ibase_drop_db($connection)) {
echo 'Datenbank wurde erfolgreich gelöscht.';
} else {
echo 'Fehler beim Löschen: ' . ibase_errmsg();
}
?>
Temporäre Testdatenbank anlegen und wieder löschen
<?php
$host = 'localhost';
$dbPath = '/tmp/test_temp.fdb';
$user = 'sysdba';
$pass = 'masterkey';
// Datenbank erstellen
$conn = ibase_connect($host . ':' . $dbPath, $user, $pass);
if (!$conn) {
die('Konnte Datenbank nicht öffnen/erstellen.');
}
echo 'Testdatenbank geöffnet.' . PHP_EOL;
// ... Tests durchführen ...
// Aufräumen: Testdatenbank löschen
if (ibase_drop_db($conn)) {
echo 'Testdatenbank erfolgreich entfernt.';
} else {
echo 'Fehler beim Entfernen der Testdatenbank: ' . ibase_errmsg();
}
?>
// Wichtig · Fallstricke
Achtung – Datenverlust: Der Löschvorgang ist nicht umkehrbar. Die Datenbankdatei wird vom Datenträger entfernt. Stellen Sie sicher, dass ein aktuelles Backup vorhanden ist, bevor Sie diese Funktion aufrufen.
Berechtigungen: Nur der Datenbankbesitzer oder ein SYSDBA-Benutzer darf eine Datenbank löschen. Ruft ein unprivilegierter Benutzer diese Funktion auf, schlägt sie mit einem Berechtigungsfehler fehl.
PHP 8.0+: Die ibase_*-Funktionen wurden mit PHP 8.0 aus dem Kern entfernt. Für neuere PHP-Versionen muss die PECL-Erweiterung ibase installiert werden. Als moderne Alternative empfiehlt sich der Einsatz von PDO mit dem Firebird-Treiber.