Я работаю на php.
И в моем локальном я работаю над средой Windows, поэтому было легко подключиться к базе данных MS Access с помощью ODBC-коннектора.
Но на моей серверной среде есть Linux, поэтому есть проблема с соединением БД.
Итак, каковы шаги для подключения к MS Access DB в среде Linux с использованием php.
благодаря
Авинаш
Это напрямую не отвечает на ваш вопрос, но это еще один способ решить проблему, связанную с необходимостью использования Access для обновления веб-данных:
Вы можете перенести свою базу данных Access в MySQL на живой (веб-сервер) и использовать Access в качестве интерфейса к этой базе данных для своего пользователя (в основном переворачивая роли веб-сайта и Access):
Вы можете подключиться к базе данных MySQL из Access over ODBC с помощью драйвера MySQL Connector , привязывая таблицы к Access с помощью инструментов «Внешние данные». Таким образом, вы получаете (более) серьезный механизм базы данных, оптимизированный для Интернета, но сохраняете способность пользователя манипулировать данными с помощью знакомых им инструментов.
Связь между веб-сервером и сетью клиента не ясна. Если Linux Server находится в локальной локальной сети клиента и работает под управлением Samba, вы наверняка сохранили бы базу данных Access / Jet / ACE на сервере Linux, и пользователи могли бы редактировать ее в Access.
Тогда вам понадобится один из эмуляторов Jet, работающих на сервере Linux (насколько я знаю, эмуляция ACE для Linux отсутствует, поэтому, если их база данных является ACCDB-форматом, вам не повезло, если только я «Я просто устарел в том, что я слышал об эмуляторах». Некоторые из эмуляторов Jet доступны только для чтения, поэтому будьте осторожны с этим.
Теперь я бы не рекомендовал этот сценарий, поскольку Jet / ACE не предназначен для такого типа приложений. Он отлично работает в среде с небольшим офисом / рабочей группой с сетью SMB, но я бы не использовал его как конец любого веб-сайта, который не был доступен только для чтения, доказательство концепции или очень, очень низкий объем чтения / записи. Я, конечно же, никогда не рекомендую иметь тот же MDB, который работает как конец веб-сайта, и одновременно используется интерактивными пользователями Access.
Если этот сценарий верен, ваши пользователи могут по-прежнему работать с Access, если вы переносите задний конец на серверную базу данных, которая работает в Linux. Я использую MySQL все время, и поскольку я идиот Access, я полагаюсь на phpMyAdmin для моего пользовательского интерфейса для управления моими базами данных MySQL. Пользователю Access должно быть достаточно легко понять, чтобы скрыть схему. Используя MyODBC, вы можете настроить связанные таблицы в Access, а также отчеты и формы, и они будут работать почти так же, как и с задней частью Jet.
Но я сильно сомневаюсь, что ваш клиент размещает свой сайт на сервере Linux, подключенном к их офисной локальной сети. Скорее всего, сервер Linux – это общий веб-хостинг, и в этом случае не будет доступной сети SMB, поэтому вы не сможете иметь единую базу данных Access, отредактированную как с сайта, так и с помощью интерактивных пользователей. ЭТО ХОРОШАЯ ВЕЩЬ, поскольку это было бы нецелесообразно в первую очередь.
При использовании совместного доступа вы можете открыть порт для базы данных сервера (сервер хостинга моего сайта предоставляет как MySQL, так и PostgreSQL, но позволяет удаленный доступ только к MySQL и только по имени узла / IP-адресу. Это, вероятно, не очень хорошо работает с офисной локальной сетью. Любой веб-хост, который разрешает открытый неограниченный доступ к серверу базы данных из дикого и шерстного Интернета, вероятно, не тот, который должен использовать ваш клиент. Один из вариантов был бы, если бы они обеспечивали поддержку VPN, и в этом случае VPN могла но по моему опыту, веб-хосты берут за руку и ногу за это (неоправданно так, на самом деле), поэтому это обычно не очень хороший вариант.
Таким образом, маловероятно, что вы сможете обеспечить подключение в реальном времени к базе данных сервера, запущенной на веб-сайте. В этом случае вы так или иначе синхронизируете базы данных. Если веб-сайт является полным подчиненным из базы данных Access (т. Е. Нет редактирования, добавления или удаления на веб-сайте), то это может быть очень просто, поскольку вы можете просто писать сценарии для экспорта данных в файл или файлы, которые вы загружаете веб-сайт, а затем обработать на веб-сайте, чтобы заменить существующие данные.
Если у вас сценарий с несколькими мастерами (обновления в обоих местах), это намного сложнее, особенно если обновления должны идти в обоих направлениях. Я запрограммировал конец доступа именно этого сценария, то есть синхронизировал базу данных MySQL на веб-сайте с базой данных Access, и это не тривиальная задача.
Если вы можете получить MySQL на обоих концах, это может быть несколько проще (предполагая, что вы можете настроить репликацию, которая в сценарии с низким уровнем хостинга кажется мне маловероятной), но я бы не стал рассчитывать на это.
Моя оценка от того, что мало я знаю о ситуации, заключается в том, что ваш клиент должен полностью переосмыслить все, поскольку нет реалистичной интеграции без большого количества обходных решений.
Одна вещь, чтобы рассмотреть, является ли веб-сайт не общедоступным, но для поддержки удаленных пользователей является то, что Access 2010 собирается добавить некоторую удивительную поддержку для интеграции с Sharepoint Server 2010, которая позволит публиковать базу данных Access на сервере Sharepoint и запускать ее в веб-браузере , С другой стороны, если обстоятельства ограничены удаленными пользователями, приложение Access можно запустить на сервере терминалов и сэкономить всем много неприятностей.
Я не работал с доступом в Linux, но быстрый поиск дал мне это.
База данных Microsoft Access с использованием Linux и PHP
Лично я бы рекомендовал переносить на СУБД, работающую как на Windows, так и на Linux. Но если вам нужно придерживаться доступа, вы можете проверить:
Если вы используете общий хостинг, Linux-сервер, скорее всего, не получит поддержки ODBC. Вам будет лучше использовать SQLite, поскольку это будет работать на Linux и Windows (и OS X) без каких-либо серьезных проблем с использованием PHP …