<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/refs.database.vendors.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'ru',
  ),
  'this' => 
  array (
    0 => 'book.dbase.php',
    1 => 'dBase',
    2 => 'dBase',
  ),
  'up' => 
  array (
    0 => 'refs.database.vendors.php',
    1 => 'Модули для работы с базами данных отдельных производителей',
  ),
  'prev' => 
  array (
    0 => 'function.cubrid-send-glo.php',
    1 => 'cubrid_send_glo',
  ),
  'next' => 
  array (
    0 => 'dbase.setup.php',
    1 => 'Установка и настройка',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'ru',
    'path' => 'reference/dbase/book.xml',
  ),
  'history' => 
  array (
  ),
  'extra_header_links' => 
  array (
    'rel' => 'alternate',
    'href' => '/manual/en/feeds/book.dbase.atom',
    'type' => 'application/atom+xml',
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="book.dbase" class="book">
 
 <h1 class="title">dBase</h1>

 
 <div id="intro.dbase" class="preface">
  <h1 class="title">Введение</h1>
  <blockquote class="note"><p><strong class="note">Замечание</strong>: 
   <p class="para">
    Модуль переместили в репозиторий <a href="https://pecl.php.net/" class="link external">&raquo;&nbsp;PECL</a> и он больше не поставляется с PHP 5.3.0.
   </p>
  </p></blockquote>
  <p class="para">
   Эти функции позволяют получить доступ к записям,
   хранящимся в DBase-формате (DBF) баз данных.
  </p>
  <div class="warning"><strong class="warning">Внимание</strong>
   <p class="para">
    Мы не рекомендуем использовать файлы DBase файлы для использования в промышленной
    эксплуатации. Лучше выберите <a href="http://sqlite.org/" class="link external">&raquo;&nbsp;SQLite</a> или какую-либо
    настоящую базу данных; <a href="http://www.mysql.com/" class="link external">&raquo;&nbsp;MySQL</a> или
    <a href="http://www.postgresql.org/" class="link external">&raquo;&nbsp;Postgres</a> являются наиболее частым выбором
    при работе с PHP. Поддержка dBase больше нужна для импорта и экспорта данных
    вашей базы данных, поскольку формат её файлов понятен большинству пакетов
    электронных таблиц (например, Excel).
   </p>
  </div>
  <div class="caution"><strong class="caution">Предостережение</strong>
   <p class="para">
    С версии dbase 7.0.0, база данных автоматически блокируется с помощью
    <span class="function"><a href="function.flock.php" class="function">flock()</a></span>. Ранее поддержки блокировок не было, так что два
    конкурирующих процесса веб-сервера, изменяющие один и тот же файл dBase могли
    с лёгкостью испортить базу. Такое может произойти даже и в dbase 7.0.0+ на системах,
    которые реализуют блокировку на уровне процесса с многопоточными SAPI.
   </p>
  </div>
  <p class="para">
   База данных dBase является просто последовательностью файлов с фиксированной длиной записи.
   Записи добавляются в конец файла и удалённые записи будут (физически)
   хранится до вызова <span class="function"><a href="function.dbase-pack.php" class="function">dbase_pack()</a></span>.
  </p>
  <p class="para">
   Поддерживаются только dbf-файлы уровня 3 (dBASE III+) - 5 (dBASE V).
   Доступные типы полей dBase:
   <table class="doctable table">
    <caption><strong>Типы полей</strong></caption>
    
     <thead>
      <tr>
       <th>Поле</th>
       <th>dBase тип</th>
       <th>Формат</th>
       <th>Дополнительная информация</th>
      </tr>

     </thead>

     <tbody class="tbody">
      <tr>
       <td><code class="literal">M</code></td>
       <td>Memo</td>
       <td>n/a</td>
       <td>Тип не поддерживается PHP, такое поле будет игнорироваться</td>
      </tr>

      <tr>
       <td><code class="literal">D</code></td>
       <td>Date</td>
       <td><code class="literal">YYYYMMDD</code></td>
       <td>Длина поля ограничена 8</td>
      </tr>

      <tr>
       <td><code class="literal">T</code></td>
       <td>DateTime</td>
       <td><code class="literal">YYYYMMDDhhmmss.uuu</code></td>
       <td>(FoxPro) Проверка на корректность не производится. Доступно с dbase 7.0.0.</td>
      </tr>

      <tr>
       <td><code class="literal">N</code></td>
       <td>Number</td>
       <td>Число</td>
       <td>
        Вы должны указать длину и точность (количество цифр
        после десятичной точки).
       </td>
      </tr>

      <tr>
       <td><code class="literal">F</code></td>
       <td>Float</td>
       <td>Число с плавающей точкой</td>
       <td>То же, что и <code class="literal">N</code>.</td>
      </tr>

      <tr>
       <td><code class="literal">C</code></td>
       <td>String</td>
       <td>A string</td>
       <td>Вы должны указать длину. При получении данных, строка
        будет дополнена справа пробелами до заявленной длины. Более длинные строки
        будут обрезаны без предупреждения.</td>
      </tr>

      <tr>
       <td><code class="literal">L</code></td>
       <td>Boolean</td>
       <td>
        <code class="literal">T</code> или <code class="literal">Y</code> для <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong>,
        <code class="literal">F</code> или <code class="literal">N</code> для <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong>,
        <code class="literal">?</code> - не инициализировано.
       </td>
       <td>
        С dbase 7.0.0, возвращается как <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span> (<strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> или <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong>),
        или <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong> для не инициализированных полей.
        Ранее возвращалось как <span class="type"><a href="language.types.integer.php" class="type int">int</a></span> (<code class="literal">1</code> или <code class="literal">0</code>).
       </td>
      </tr>

     </tbody>
    
   </table>

  </p>
  <blockquote class="note"><p><strong class="note">Замечание</strong>: 
   <p class="para">
    Начиная с dbase 7.0.0 поддерживаются обнуляемые поля
    для баз данных <strong><code><a href="dbase.constants.php#constant.dbase-type-foxpro">DBASE_TYPE_FOXPRO</a></code></strong>. Если поле
    обнуляемое. При передаче <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong> будет установлен
    соответствующий флаг и, при дальнейшем извлечении
    поля, будет возвращено значение <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong>.
   </p>
  </p></blockquote>
  <blockquote class="note"><p><strong class="note">Замечание</strong>: 
   <p class="para">
    Поддержки для индексов и memo-полей нет.
   </p>
  </p></blockquote>
 </div>
 

 






 





 



 


<ul class="chunklist chunklist_book"><li><a href="dbase.setup.php">Установка и настройка</a><ul class="chunklist chunklist_book chunklist_children"><li><a href="dbase.installation.php">Установка</a></li><li><a href="dbase.resources.php">Типы ресурсов</a></li></ul></li><li><a href="dbase.constants.php">Предопределённые константы</a></li><li><a href="ref.dbase.php">dBase</a><ul class="chunklist chunklist_book chunklist_children"><li><a href="function.dbase-add-record.php">dbase_add_record</a> — Добавляет запись в базу данных</li><li><a href="function.dbase-close.php">dbase_close</a> — Закрывает базу данных</li><li><a href="function.dbase-create.php">dbase_create</a> — Создаёт базу данных</li><li><a href="function.dbase-delete-record.php">dbase_delete_record</a> — Удаляет запись из базы данных</li><li><a href="function.dbase-get-header-info.php">dbase_get_header_info</a> — Получает информацию, которую хранит заголовок базы данных</li><li><a href="function.dbase-get-record.php">dbase_get_record</a> — Получает запись из базы данных как индексный массив</li><li><a href="function.dbase-get-record-with-names.php">dbase_get_record_with_names</a> — Получает запись из базы данных в виде ассоциативного массива</li><li><a href="function.dbase-numfields.php">dbase_numfields</a> — Получает количество полей базы данных</li><li><a href="function.dbase-numrecords.php">dbase_numrecords</a> — Получает количество записей в базе данных</li><li><a href="function.dbase-open.php">dbase_open</a> — Открывает базу данных</li><li><a href="function.dbase-pack.php">dbase_pack</a> — Упаковывает базу данных &mdash; фиксирует удаление записей из БД</li><li><a href="function.dbase-replace-record.php">dbase_replace_record</a> — Заменяет запись в базе данных</li></ul></li></ul></div><?php manual_footer($setup); ?>