Einführung
Hinweis:
Diese Erweiterung wurde ins » PECL-Repositorium verschoben und ist nicht mehr Teil von PHP ab PHP 5.3.0.
Diese Funktionen erlauben Ihnen den Zugriff auf Datensätze, die in Datenbanken im dBase-Format (dbf) vorliegen.
Wir empfehlen, keine dBase-Dateien als Produktions-Datenbank zu verwenden. Wählen Sie dafür stattdessen » SQLite oder einen echten SQL-Server; » MySQL oder » Postgres sind bei PHP eine gute Wahl. Die dBase-Unterstützung durch PHP dient hauptsächlich dem Im- und Export von Daten zu oder aus ihrer Web-Datenbank, weil das DBF-Datei-Format allgemein von Windows-Tabellenkalulationen und -Zeitplanern verstanden wird.
Von dbase 7.0.0 an werden Datenbanken automatisch per flock() gesperrt. Zuvor wurden Sperren nicht unterstützt, so dass zwei Webserver-Prozesse, die gleichzeitig dieselbe dBase-Datei änderten, mit hoher Wahrscheinlichkeit die Datenbank ruinierten. Dies kann auf Systemen, die die Sperren auf Prozessebene implementieren unter multithreaded SAPIS, auch noch mit dbase 7.0.0+ passieren.
dBase-Dateien sind einfache sequentielle Dateien mit fester Datensatzlänge. Neue Datensätze werden am Dateiende angehängt und gelöschte Datensätze werden beibehalten, bis Sie dbase_pack() aufrufen.
Nur dbf Datei-Level 3 (dBASE III+) - 5 (dBASE V) werden unterstützt. Folgende dBase-Feldtypen stehen stehen zur Verfügung:
Feld | dBase-Typ | Format | Zusätzliche Informationen |
---|---|---|---|
M |
Memo | n/a | Dieser Typ wird von PHP nicht unterstützt, ein solches Feld wird ignoriert |
D |
Date | YYYYMMDD |
Die Feldlänge ist auf acht Zeichen begrenzt |
T |
DateTime | YYYYMMDDhhmmss.uuu |
(FoxPro) Es wird keine Gültigkeitsprüfung vorgenommen. Verfügbar seit dbase 7.0.0. |
N |
Number | Eine Zahl | Sie müssen die Länge und die Genauigkeit (die Anzahl der Nachkommastellen) angeben. |
F |
Float | Eine Gleitkommazahl |
Dasselbe wie N .
|
C |
String | Eine Zeichenkette | Sie müssen die Länge angeben. Wenn Daten eingetragen werden, werden Leerzeichen ans Ende der Zeichenkette angehängt, bis die festgelegte Länge erreicht ist. Überlange Zeichenketten werden stillschweigend abgeschnitten, wenn die Daten gespeichert werden. |
L |
Boolean |
T oder Y für true ,
F oder N für false ,
? für nicht initialisiert.
|
Wird seit dbase 7.0.0 als bool (true oder false ),
oder null für nicht initialisierte Felder zurückgeliefert. Wurde
vorher als int (1 oder
0 > zurückgegeben.
|
Hinweis:
Von dbase 7.0.0 an werden nullable Felder für
DBASE_TYPE_FOXPRO
Datenbanken unterstützt. Ist ein Feld nullable, wird die Übergabe vonnull
das entsprechende Flag setzen, und beim späteren Abruf wird der Feldwertnull
sein.
Hinweis:
Indizes und Memo-Felder werden nicht unterstützt.