Start · Sprachen · PHP · Referenz · ibase_drop_db

ibase_drop_db

Funktion

Löscht eine Firebird/InterBase-Datenbank, die über die angegebene Verbindung erreichbar ist.

seit PHP 5.0.0 Kategorie: db

Signatur

ibase_drop_db(resource $connection = null): bool

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

Typ
bool
Beschreibung
Gibt 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();
}
?>
Datenbank wurde erfolgreich gelöscht.

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();
}
?>
Testdatenbank geöffnet. Testdatenbank erfolgreich entfernt.

// 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.