Start · Sprachen · PHP · Referenz · dbase_close

dbase_close

Funktion

Schließt eine zuvor mit <code>dbase_open()</code> geöffnete dBASE-Datenbankressource und gibt die zugehörigen Ressourcen frei.

Kategorie: db

Signatur

dbase_close(resource $database): bool

Beschreibung

dbase_close() schließt eine geöffnete dBASE-Datenbank (DBF-Datei), die über den übergebenen Ressource-Handle referenziert wird. Nach dem Aufruf ist der Handle ungültig und sollte nicht mehr verwendet werden.

Die Funktion gehört zur dbase-Erweiterung, die den Zugriff auf dBASE III- und IV-kompatible Datenbankdateien ermöglicht. Da diese Erweiterung keine persistente Verbindung kennt, sollte jede mit dbase_open() geöffnete Datei nach der Verwendung explizit mit dbase_close() geschlossen werden, um Dateisperren aufzuheben und Ressourcen freizugeben.

Insbesondere beim Schreibzugriff (Öffnungsmodus 2) ist ein explizites Schließen wichtig, damit gepufferte Änderungen korrekt auf die Datei geschrieben werden und keine Dateisperre für andere Prozesse bestehen bleibt.

Parameter

Name Typ Default Beschreibung
$database Pflicht resource Der Ressource-Handle der zu schließenden dBASE-Datenbank, wie er von dbase_open() zurückgegeben wurde.

Rückgabewert

Typ
bool
Beschreibung
Gibt true bei Erfolg zurück, false bei einem Fehler (z. B. wenn der übergebene Handle ungültig ist).

Beispiele

Datenbank öffnen, lesen und schließen

<?php
// Datenbank im Lesemodus (0) öffnen
$db = dbase_open('/var/data/adressen.dbf', 0);

if ($db === false) {
    die('Datenbank konnte nicht geöffnet werden.');
}

$anzahl = dbase_numrecords($db);
echo "Anzahl Datensätze: " . $anzahl . PHP_EOL;

for ($i = 1; $i <= $anzahl; $i++) {
    $record = dbase_get_record_with_names($db, $i);
    if (!$record['deleted']) {
        echo $record['NAME'] . ', ' . $record['ORT'] . PHP_EOL;
    }
}

// Ressource freigeben
dbase_close($db);
Anzahl Datensätze: 3 Müller, Berlin Schmidt, Hamburg Meier, München

Datensatz hinzufügen und Datei korrekt schließen

<?php
// Datenbank im Lese-/Schreibmodus (2) öffnen
$db = dbase_open('/var/data/kunden.dbf', 2);

if ($db === false) {
    die('Datenbank konnte nicht geöffnet werden.');
}

// Neuen Datensatz einfügen
$neuerDatensatz = ['Max Mustermann', 'Berlin', '12345'];
$erfolg = dbase_add_record($db, $neuerDatensatz);

if ($erfolg) {
    echo 'Datensatz erfolgreich hinzugefügt.' . PHP_EOL;
} else {
    echo 'Fehler beim Hinzufügen des Datensatzes.' . PHP_EOL;
}

// Wichtig: Datei schließen, damit Änderungen geschrieben werden
if (dbase_close($db)) {
    echo 'Datenbank erfolgreich geschlossen.' . PHP_EOL;
}
Datensatz erfolgreich hinzugefügt. Datenbank erfolgreich geschlossen.

// Wichtig · Fallstricke

Veraltete Erweiterung: Die dbase-Erweiterung ist nicht Bestandteil des PHP-Kerns und muss als PECL-Paket installiert werden. Für neue Projekte sollten moderne Datenbankabstraktionsschichten (z. B. PDO mit SQLite) bevorzugt werden.

Dateisperre: Beim Öffnen im Schreibmodus (2) kann die Datei gesperrt sein. Ein versäumtes dbase_close() kann dazu führen, dass andere Prozesse nicht auf die DBF-Datei zugreifen können, bis das PHP-Skript endet.

Ab PHP 7 wurde die dbase-Erweiterung überarbeitet; der Rückgabetyp von dbase_open() ist je nach Version entweder resource oder int – dies sollte bei der Verwendung beachtet werden.