|  | В этом разделе рассматриваются общие вопросы взаимодействия
PHP и БД. Да, PHP может получать доступ фактически к любой БД, известной на данный момент. 
1. Я слышал, что можно получать доступ к Microsoft SQL Server из PHP. Как?
2. Можно ли получать доступ к БД Microsoft Access?3. Я обновил до PHP 4, а как теперь mysql будет сообщать мне
"Warning!: MySQL: Unable to save result set in ..." ?4. После установки совместной/shared поддержки MySQL, Apache
передаёт ядро в дамп, как только загружается libphp4.so. Можно ли это исправить?5. Почему я получаю ошибку, которая выглядит примерно так: "Warning!: 0 is 
not a MySQL result index in <file> on line <x>" или "Warning!: Supplied 
argument is not a valid MySQL result resource in <file> on line <x>"? 1. Я слышал, что можно получать доступ к Microsoft
SQL Server из PHP. Как? На машинах с Windows вы можете просто использовать имеющуюся
поддержку ODBC и корректный ODBC-драйвер. На машинах Unix вы можете использовать драйвер Sybase-CT для доступа к Microsoft SQL-Серверам, 
поскольку они протокольно совместимы (во всяком случае - большей частью). Sybase создал 
свободную версию необходимых
библиотек для систем Linux. Для других ОС Unix вы должны запросить у Sybase корректные библиотеки.
См. также ответ на следующий вопрос. 
2. Можно ли получать доступ к БД Microsoft Access? Да. У вас уже имеются все необходимые утилиты, если вы работаете под Windows 9x/Me 
или NT/2000, где можно использовать ODBC и Microsoft ODBC драйверы для БД Microsoft Access. Если вы запускаете PHP в Unix-боксе и хотите сообщить MS Access в Windows-боксе, 
вам понадобятся ODBC-драйверы для Unix. OpenLink Software
имеет ODBC-драйверы для Unix, которые делают эту работу. Имеется свободная 
пилотная программа, где вы можете загрузить пробную копию, которая не имеет 
срока годности, а цены начинаются от $675 для коммерческой поддерживаемой версии. Другой вариант - использовать SQL-сервер, имеющий
Windows ODBC-драйверы, для хранения данных, к которым вы можете получить 
затем доступ из Microsoft Access (используя ODBC) и из PHP (с помощью встроенных 
драйверов), или можно использовать промежуточный формат, который понимается и Access 
и PHP, такой как flat-файлы или БД dBase. Tim Hayes из OpenLink software пишет об этом:
 | Использование другой БД в качестве посредника - плохая идея, если можно использовать
      ODBC из PHP напрямую с вашей БД - т.е. через OpenLink-драйверы. Если вам
      не нужно использовать файлы промежуточного формата, у OpenLink имеется
      Virtuoso (машина виртуальных БД) для NT, Linux и других unix-платформ.
      Посетите наш website, где можно бесплатно это загрузить. | 
 Опцией, которая была успешно опробована, является использование MySQL и 
его MyODBC-драйверов под Windows и синхронизация баз данных. Steve Lawrence пишет: Установите MySQL на вашей платформе в соответствии с инструкциями к MySQL, 
которые находятся на www.mysql.com. Никакого специального
конфигурирования не требуется, за исключением случая, 
когда вы устанавливаете БД и конфигурируете бюджет пользователя - тогда вы должны поместить % в поле host или имя хоста
Windows-копьютера, доступ к которому вы хотите выполнять из MySQL. Запомните имя вашего сервера, username и password.Загрузите драйвер MyODBC для Windows с сайта MySQL. Последний релиз это myodbc-2_50_19-win95.zip (для NT 
также имеется, как и исходный код). Установите его на вашей Windows-машине. Вы 
можете протестировать эту операцию с помощью прилагаемой утилиты.Создайте пользовательский или системный dsn в ODBC administrator, 
размещённом в control panel. Введите dsn-имя, имя вашего хоста, user name, password,
port, etc для вашей БД MySQL, сконфигурированной на шаге 1.Произведите полную установку Access, это гарантирует, что у вас будут все необходимые
add-ins ... как минимум, вам необходима поддержка ODBC и менеджер связанных таблиц/linked table manager.Создайте новую access-БД. В окне таблицы щёлкните правой кнопкой мыши и 
выберите Link Tables, либо в меню file выберите Get External Data, а затем - Link Tables.
Когда появится бокс поиска файлов, выберите тип файлов: ODBC.
Выберите System dsn и имя вашего dsn, созданного на шаге 3.
Выберите таблицу для привязки, нажмите OK. теперь вы можете открыть 
таблицу и добавлять/удалят/редактировать данные на вашем MySQL-сервере!
Вы можете также создавать запросы/queries, таблицы импорта/экспорта в MySQL,
создавать формы и отчёты etc.
 Подсказки и замечания: Вы можете создавать в Аccess таблицы и экспортировать их в MySQL, 
затем привязать их обратно. Это ускорит создание таблиц.При создании таблиц в Аccess, вы обязаны иметь определённый первичный ключ/primary
key, чтобы иметь право доступа для записи в таблицы Аccess. Убедитесь, 
что вы создали primary key в MySQL, прежде чем выполнять привязку к АccessЕсли вы изменяете таблицу в MySQL, вы должны повторно связать её с Access. 
Перейдите в tools>add-ins>linked table manager,
найдите ваше ODBC DSN и выберите таблицу для повторного связывания. Вы 
можете также перемещать здесь исходник вашего dsn,
просто щёлкните промпт always в переключателе new location, прежде чем нажать OK.
 3. Я обновил до PHP 4, а как теперь mysql будет сообщать мне "Warning!: MySQL: 
Unable to save result set in ..." ? Вероятнее всего PHP 4 был скомпилирован с опцией '--with-mysql'
без специфицирования пути к MySQL. Это означает, что PHP использует свою 
встроенную клиентскую библиотеку MySQL. Если в вашей системе работают приложения,
такие как PHP 3, конкурирующий Apache-модуль или auth-mysql, которые 
используют другие версии MySQL-клиентов, тогда налицо конфликт между разными версиями этих клиентов. Рекомпиляция PHP 4 и добавление пути к MySQL
'--with-mysql=/your/path/to/mysql' 
обычно решает эту проблему. 
4. После установки совместной/shared поддержки MySQL, Apache передаёт ядро в 
дамп, как только загружается libphp4.so. Можно ли это исправить? Это может произойти, если ваши MySQL libs подключены относительно pthreads. 
Проверьте использование ldd. Если это так, скачайте MySQL tar и скомпилируйте из исходника,
либо рекомпилируйте из rpm и удалите в spec-файле переключатель, который 
включает поточный клиентский код. Одно их этих должно помочь. Затем рекомпилируйте PHP с новыми MySQL libs. 5. 
Почему я получаю ошибку, которая выглядит примерно так: "Warning!: 0 is not 
a MySQL result index in <file> on line <x>" или "Warning!: Supplied argument is 
not a valid MySQL result resource in <file> on line <x>"? Вы пытаетесь использовать result-идентификатор 0.0 указывает, что ваш запрос не выполнен по каким-то причинам. Необходимо 
проверить наличие ошибок после отправки запроса/query и перед попыткой 
использования возвращённого result identifier.  Подходящий способ - сделать это кодом наподобие следующего:
 | $result = mysql_query("SELECT * FROM tables_priv");
if (!$result) {
    echo mysql_error();
    exit;
} | 
 или 
| $result = mysql_query("SELECT * FROM tables_priv")
    or die("Bad query: ".mysql_error()); | 
 |  |