<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/faq.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'ru',
  ),
  'this' => 
  array (
    0 => 'faq.databases.php',
    1 => 'Вопросы по базам данных',
    2 => 'Вопросы по Базам данных',
  ),
  'up' => 
  array (
    0 => 'faq.php',
    1 => 'ЧАВО',
  ),
  'prev' => 
  array (
    0 => 'faq.obtaining.php',
    1 => 'О получении PHP',
  ),
  'next' => 
  array (
    0 => 'faq.installation.php',
    1 => 'Установка',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'ru',
    'path' => 'faq/databases.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="faq.databases" class="chapter">
 <h1 class="title">Вопросы по Базам данных</h1>

 

 <p class="para">
  Этот раздел содержит общие вопросы о связи между PHP и базами данных.
  Да, сегодня практически любая база данных может быть доступна из PHP.
 </p>

 <div class="qandaset"><ol class="qandaset_questions"><li><a href="#faq.databases.mssql">
    
     Я слышал, что можно получить доступ к Microsoft SQL серверу из PHP. Как?
    
   </a></li><li><a href="#faq.databases.access">
    Могу ли я получить доступ к базам данных Microsoft Access?
   </a></li></ol></div>
  <dl class="qandaentry" id="faq.databases.mssql">
   <dt><strong>
    
     Я слышал, что можно получить доступ к Microsoft SQL серверу из PHP. Как?
    
   </strong></dt>
   <dd class="answer">
    <p class="para">
     На Unix вы можете использовать <a href="ref.pdo-odbc.php" class="link">PDO_ODBC</a>
     или <a href="book.uodbc.php" class="link">Унифицированное ODBC API</a>.
    </p>
    <p class="para">
     На Windows вы можете использовать <a href="ref.pdo-sqlsrv.php" class="link">PDO_SQLSRV</a>
     или <a href="book.sqlsrv.php" class="link">SQLSRV</a>.
    </p>
    <p class="para">
     Также смотрите ответ на следующий вопрос.
    </p>
   </dd>
  </dl>

  <dl class="qandaentry" id="faq.databases.access">
   <dt><strong>
    Могу ли я получить доступ к базам данных Microsoft Access?
   </strong></dt>
   <dd class="answer">
    <p class="para">
     Если вы хотите связать PHP, выполняющийся на Unix, и MS Access на
     Windows, то вам будут нужны драйверы ODBC для Unix.
     Такие ODBC драйверы для Unix есть у <a href="http://www.openlinksw.com/" class="link external">&raquo;&nbsp;OpenLink
     Software</a>.
    </p>
    <p class="para">
     Другая возможность - хранить данные на SQL сервере, который имеет
     ODBC драйверы для Windows, и затем обращаться к этой базе данных из
     Microsoft Access (используя ODBC) и из PHP (используя встроенные драйверы)
     или использовать промежуточный формат, понятный и для Access, и для PHP,
     например, простые файлы или базы данных dBase.
     По этому поводу Тим Хэйз (Tim Hayes) из OpenLink software пишет:
     <blockquote class="blockquote">
      <p class="para">
       Использование промежуточной базы данных - не очень хорошая идея, когда
       есть возможность работать с базой данных напрямую из PHP через ODBC,
       например с драйверами от OpenLink. Если вам всё-таки надо использовать
       промежуточный формат, OpenLink выпустил Virtuoso (механизм виртуальной
       базы данных) для NT, Linux и других платформ Unix.
       Пожалуйста, посетите наш <a href="http://www.openlinksw.com/" class="link external">&raquo;&nbsp;веб-сайт</a>
       для бесплатной загрузки.
      </p>
     </blockquote>
    </p>
    <p class="para">
     Другой проверенный вариант - использовать MySQL с её MyODBC драйверами на
     Windows и делать синхронизацию баз данных. Стив Лоренс (Steve Lawrence)
     пишет:
    </p>
    <p class="para">
     <ul class="itemizedlist">
      <li class="listitem">
       <span class="simpara">
        Установите MySQL согласно поставляемым с ней инструкциям.
        Последняя версия доступна с <a href="http://www.mysql.com/" class="link external">&raquo;&nbsp;http://www.mysql.com/</a>.
        Особой конфигурации не требуется,
        за исключением того, что при настройке баз данных и создании пользователя,
        в поле хоста вы должны поместить % или имя Windows машины, на которую
        вы хотите получить доступ из MySQL. Запишите имя вашего сервера,
        имя пользователя и пароль.
       </span>
      </li>
      <li class="listitem">
       <span class="simpara">
        Скачайте драйвер MyODBC для Windows с сайта MySQL.
        Установите его на вашей машине Windows. Вы можете проверить его
        работоспособность с помощью поставляемых с ним утилит.
       </span>
      </li>
      <li class="listitem">
       <span class="simpara">
        Создайте пользователя или системный dsn в вашем администраторе ODBC,
        расположенном в контрольной панели. Создайте имя dsn, введите имя хоста,
        имя пользователя, пароль и т.д. для вашей базы данных MySQL,
        сконфигурированной на 1-ом шаге.
       </span>
      </li>
      <li class="listitem">
       <span class="simpara">
        Установите полную версию Access, это даст вам уверенность, что вы
        получите все нужные расширения (add-ins). По крайней мере вам будут
        необходимы поддержка ODBC и администратор связанных таблиц.
       </span>
      </li>
      <li class="listitem">
       <span class="simpara">
        И теперь самое интересное! Создайте новую базу данных Access.
        В окне таблицы щёлкните правой кнопкой мышки и выберите Link Tables
        (Связать Таблицы), либо из файлового меню выберите Get External Data
        (Получить Внешние Данные) и затем Link Tables. В появившемся окне
        просмотра файлов выберите файлы типа ODBC.
        Выберите системный dsn и имя вашего dsn, созданного на 3-ем шаге.
        Выберите таблицу для связи, нажмите OK и вуаля! Теперь вы можете
        открыть таблицу и добавить/удалить/отредактировать данные на вашем
        MySQL сервере! Вы также можете строить запросы, импортировать/экспортировать
        таблицы в MySQL, создавать формы и отчёты, и т.д.
       </span>
      </li>
     </ul>
    </p>
    <p class="para">
     Полезные советы и трюки:
     <ul class="itemizedlist">
      <li class="listitem">
       <span class="simpara">
        Вы можете создавать ваши таблицы в Access, экспортировать их в MySQL
        и затем привязать их назад. Это увеличивает скорость создания таблиц.
       </span>
      </li>
      <li class="listitem">
       <span class="simpara">
        При создании таблиц в Access, вы должны определить первичный ключ,
        чтобы иметь доступ к таблице по записи. Убедитесь что вы создали
        первичный ключ в MySQL перед тем как привязать таблицу к Access.
       </span>
      </li>
      <li class="listitem">
       <span class="simpara">
        Если вы изменяете таблицу в MySQL, то вы должны связать её с Access
        по новой. Идите в tools&gt;add-ins&gt;linked table manager,
        следуйте к вашему ODBC DSN, и выберите оттуда таблицу для пересвязки.
        Там же вы можете изменить источник вашего dsn, для этого, перед тем как
        нажать OK, просто пометьте &quot;always prompt for new location&quot;
        (всегда запрашивать новое местонахождение).
       </span>
      </li>
     </ul>
    </p>
   </dd>
  </dl>
  
</div>
<?php manual_footer($setup); ?>