dBase
&reftitle.intro;
&pecl.moved-ver;5.3.0.
These functions allow you to access records stored in dBase-format
(dbf) databases.
We recommend against using dBase files as your production
database. Use SQLite or choose any real SQL server instead; MySQL or Postgres
are common choices with PHP. dBase support is here to allow you to
import and export data to and from your web database, because the
file format is commonly understood by Windows spreadsheets and
organizers.
As of dbase 7.0.0 the databases are automatically locked via
flock. There has been no support for locking earlier,
so two concurrent web server processes modifying the same dBase file would
have very likely ruined your database. This can happen even with dbase
7.0.0+ on systems which implement the locks at the process level with
multithreaded SAPIs.
dBase files are simple sequential files of fixed length records.
Records are appended to the end of the file and deleted records are
kept until you call dbase_pack.
Only dbf file levels 3 (dBASE III+) - 5 (dBASE V) are supported.
The types of dBase fields available are:
Available types of fieldsFielddBase TypeFormatAdditional informationMMemon/aThis type is not supported by PHP, such field will be ignoredDDateYYYYMMDDThe field length is limited to 8TDateTimeYYYYMMDDhhmmss.uuu(FoxPro) No validity checks are done. Available as of dbase 7.0.0.NNumberA number
You must declare a length and a precision (the number of digits
after the decimal point).
FFloatA float numberSame as N.CStringA stringYou must declare a length. When retrieving data, the string
will be right-padded with spaces to fit the declared length. Overlong
strings will be silently truncated when storing data.LBooleanT or Y for &true;,
F or N for &false;,
? for uninitialized.
As of dbase 7.0.0, returned as a bool (&true; or &false;),
or &null; for uninitialized fields.
Formerly, returned as an int (1 or 0).
As of dbase 7.0.0 nullable fields are supported for
DBASE_TYPE_FOXPRO databases. If a field is nullable,
passing &null; will set the respective flag, and on later retrieval the field
value will be &null;.
There is no support for indexes or memo fields.
&reference.dbase.setup;
&reference.dbase.constants;
&reference.dbase.reference;