||dBase database file access functions
Alan Knowles <
alan at akbkhome dot com >
jim winstead <
jimw at apache dot org >
Christoph M. Becker <
cmb at php dot net >
||These functions allow you to access records stored
in dBase-format (dbf) databases.
There is no support for indexes or memo fields.
The databases are automatically locked with blocking flock()s.
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().
Backward Incompatible Changes
- database link identifiers are now proper resources instead of integers
- logical values are now retrieved as booleans instead of integers
- FoxPro datetime fields ('T') are now supported as "YYYYMMDDhhmmss.uuu"
- Uninitialized logical fields are now supported as NULL
- base_create() now supports an optional $type parameter (either DBASE_TYPE_DBASE
or DBASE_TYPE_FOXPRO) to define the type of database to be created
- FoxPro nullable fields are now transparently supported
- The $mode of dbase_open() can now be specified as DBASE_RDONLY or DBASE_RDWR
- The version of the dbase extension is now available as DBASE_VERSION
- Basic database locking has been implemented
- Internally the Zend memory manager is now used
- Error reporting has been improved; e.g. unsupported field type now raise a
- Fixed #39305 (Use of decimal point in different countries)
- Fixed #52112 (dbase_get_record() returns integer instead of decimal values)
- Fixed #68289 (wrong strlcpy call)
- Fixed #72812 (dbase_create does not close the FD on failure)
- Fixed #72815 (zend_get_parameters_ex() is deprecated)
- Fixed #73391 (Writing of floats can cause OOB reads)
- Fixed #73395 (failing dbase_create() may leak memory)
- Fixed #73411 (dbase_pack() returns TRUE on failure)
- Fixed #73414 (Unsupported field types may cause dbase_open() to leak memory)
- Fixed #73442 (Float fields always have precision 0)
- Fixed #73447 (Floats written to character fields are truncated to integer)
- Fixed #74983 (SIGABRT when function put_dbf_field is called)