Signatur
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
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);
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;
}
// 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.