Не поддерживаются индексы и мемо(записи) поля. Также не поддерживается блокировка. Два webсервер процесса, одновременно изменяющие файлы dBase вполне возможно повредят вашу базу данных.
В отличие от баз данных SQL, в dBase нельзя изменять определение полей после их создания. Если только файл создан, то поля базы данных фиксировано определены. Не имеется никаких индексов, которые ускоряют поиск или иначе организовывает ваши данные. dBase файлы - это простые последовательные файлы с записями фиксированного размера. Записи добавляются в конец файла и удаленные записи будут присутствовать в вашей базе до тех пор, пока вы не вызовете dbase_pack() функцию.
Мы рекомендуем вы не использовать dBase файлы для профессионального использования фаз данных. Выберете взамен какой-нибудь реальный SQL сервер; MySQL или Postgres лучший выбор для работы вместе с PHP. Поддержка dBase введена для импорта и экспорта ваших данных из и в вашу web базу данных, так как этот формат обычно понимают многие программы, например электронные таблицы, в Windows. Поддержка dBase для любого экспорта или импорта данных хорошо выполняет эти условия.
Доступные типы полей:
L | Логическое. Не требует длину или точность. |
M | Мемо. (Помните, что они не поддерживаются в PHP.) Не требует длину или точность. |
D | дата (сохраненная как ГГГГММДД). Не требует длину или точность. |
N | Числовое. Это поле имеет и длину и точность(количество цифр после десятичной точки). |
C | Строка. Имеет длину и не требует точность. |
Пример 1. Создание dBase базы данных
// "database" имя $dbname = "/tmp/test.dbf"; // определяем поля $def = array( array("date", "D"), array("name", "C", 50), array("age", "N", 3, 0), array("email", "C", 128), array("ismember", "L") ); // создаем if (!dbase_create($dbname, $def)) print "<strong>Error!</strong>"; |
Возвращает dbase_identifier(идентификатор базы данных) для открытой базы данных, или false(ложь) если база данных не была открыта.
Все поля преобразовываются в соответствующий PHP тип. (Даты остаются строками.)
Пример 1. Использование dbase_numfields()
$rec = dbase_get_record($db, $recno); $nf = dbase_numfields($db); for ($i=0; $i < $nf; $i++) { print $rec[$i]."<br>\n"; } |