Этот раздел содержит общие вопросы о связи между PHP и базами данных. Да, сегодня практически любая база данных может быть доступна из PHP.
На Unix вы можете использовать PDO_ODBC или Унифицированное ODBC API.
На Windows вы можете использовать PDO_SQLSRV или SQLSRV.
Также смотрите ответ на следующий вопрос.
Да. Если все полностью выполняется под Windows 9x/Me или NT/2000, то у вас уже есть все необходимые средства, так как для баз данных Microsoft Access вы можете использовать ODBC и драйверы ODBC от Microsoft.
Если вы хотите связать PHP, выполняющийся на Unix, и MS Access на Windows, то вам будут нужны драйверы ODBC для Unix. Такие ODBC драйверы для Unix есть у » OpenLink Software.
Другая возможность - хранить данные на SQL сервере, который имеет ODBC драйверы для Windows, и затем обращаться к этой базе данных из Microsoft Access (используя ODBC) и из PHP (используя встроенные драйверы) или использовать промежуточный формат, понятный и для Access, и для PHP, например, простые файлы или базы данных dBase. По этому поводу Тим Хэйз (Tim Hayes) из OpenLink software пишет:
Использование промежуточной базы данных - не очень хорошая идея, когда есть возможность работать с базой данных напрямую из PHP через ODBC, например с драйверами от OpenLink. Если вам все-таки надо использовать промежуточный формат, OpenLink выпустил Virtuoso (механизм виртуальной базы данных) для NT, Linux и других платформ Unix. Пожалуйста, посетите наш » веб-сайт для бесплатной загрузки.
Другой проверенный вариант - использовать MySQL с её MyODBC драйверами на Windows и делать синхронизацию баз данных. Стив Лоренс (Steve Lawrence) пишет:
Полезные советы и трюки:
Есть три расширения для работы с MySQL, как описано в разделе Выбор MySQL API Старое API не должно использоваться, оно является устаревшим с версии PHP 5.5.0 и перемещено в PECL с версии PHP 7.0.0. Настоятельно рекомендуется писать весь новый код с использованием либо mysqli, либо PDO_MySQL.
Скрипты для перехода со старого API пока недоступны, но mysqli API содержит как процедурный так и объектный API, схожие со старым процедурным ext/mysql API.
Нельзя совмещать различные расширения. Поэтому, например передача mysqli соединения в PDO_MySQL или ext/mysql не будет работать.
Вы пытаетесь использовать идентификатор результата, который равен 0. 0 означает, что ваш запрос не удался по какой-либо причине. Вам необходимо сделать проверку на ошибки, после того как вы послали ваш запрос, и перед тем, как вы пытаетесь использовать возвращенный идентификатор результата. Правильный способ этой реализации выглядит примерно так:
<?php
$result = mysql_query("SELECT * FROM tables_priv");
if (!$result) {
echo mysql_error();
exit;
}
?>
<?php
$result = mysql_query("SELECT * FROM tables_priv")
or die("Плохой запрос: " . mysql_error());
?>