Введение

Замечание:

Это расширение было перемещено в репозиторий » PECL и больше не поставляется с PHP 5.3.0.

Эти функции позволяют получить доступ к записям, хранящимся в DBase-формате (DBF) баз данных.

Внимание

Мы не рекомендуем использовать файлы DBase файлы для использования в промышленной эксплуатации. Лучше выберите » SQLite или какую-либо настоящую базу данных; » MySQL или » Postgres являются наиболее частым выбором при работе с PHP. Поддержка dBase больше нужна для импорта и экспорта данных вашей базы данных, поскольку формат ее файлов понятен большинству пакетов электронных таблиц (например, Excel).

Предостережение

С версии dbase 7.0.0, база данных автоматически блокируется с помощью flock(). Ранее поддержки блокировок не было, так что два конкурирующих процесса веб-сервера, изменяющие один и тот же файл dBase могли с легкостью испортить базу. Такое может произойти даже и в dbase 7.0.0+ на системах, которые реализуют блокировку на уровне процесса с многопоточными SAPI, такими как ISAPI.

База данных dBase является просто последовательностью файлов с фиксированной длиной записи. Записи добавляются в конец файла и удаленные записи будут (физически) хранится до вызова dbase_pack().

Поддерживаются только dbf-файлы уровня 3 (dBASE III+) - 5 (dBASE V). Доступные типы полей dBase:

Типы полей
Поле dBase тип Формат Дополнительная информация
M Memo n/a Тип не поддерживается PHP, такое поле будет игнорироваться
D Date YYYYMMDD Длина поля ограничена 8
T DateTime YYYYMMDDhhmmss.uuu (FoxPro) Проверка на корректность не производится. Доступно с dbase 7.0.0.
N Number Число Вы должны указать длину и точность (количество цифр после десятичной точки).
F Float Число с плавающей запятой То же, что и N. Доступно с PHP 5.2.0
C String A string Вы должны указать длину. При получении данных, строка будет дополнена справа пробелами до заявленной длины. Более длинные строки будут обрезаны без предупреждения.
L Boolean T или Y для TRUE, F или N для FALSE, ? - не инициализированно. С dbase 7.0.0, возвращается как bool (TRUE или FALSE), или NULL для не инициализированных полей. Ранее возвращалось как int (1 или 0).

Замечание:

Начиная с dbase 7.0.0 поддерживаются обнуляемые поля для баз данных DBASE_TYPE_FOXPRO. Если поле обнуляемое. При передаче NULL будет установлен соответствующий флаг и, при дальнейшем извлечении поля, будет возвращено значение NULL.

Замечание:

Поддержки для индексов и memo-полей нет.