Проблема с PHP, связывающая php и .mdb с pdo-odbc - PullRequest
2 голосов
/ 04 ноября 2019

У меня есть программа php, которая требует MS Access, поэтому мне пришлось использовать odbc. Локально, используя DSN, он работал нормально:

$db = new PDO("odbc:MyDSN");

У меня также нет проблем, когда я помещаю php и odbc на сервер и получаю к нему удаленный доступ:

$db = new PDO("odbc:DRIVER=MDBTools; DBQ=Data.mdb;");

Но я могуне могу использовать его по какой-то причине. Я хочу поместить php на сервер вместе с базой данных, но я хочу разместить odbc (или драйвер odbc) на клиенте, что-то вроде этого:

$db = new PDO("odbc:{127.0.0.1\foo\bar\odbc.ini}; DBQ=Data.mdb;");

Кажется, я не могу с ним работатьна время. Я использую Ubuntu 64bit в качестве сервера и Windows 7 в качестве клиента

UPDATE 1 : я нашел способ сделать это, но он должен изменить сам PHP (классы, структура,и т. д.) Я надеюсь, что кто-то может помочь мне получить альтернативные решения

ОБНОВЛЕНИЕ 2 : другое решение, но требуется программное обеспечение сторонних производителей.

Ответы [ 2 ]

1 голос
/ 12 ноября 2019

Используя this и this для получения IP-адреса клиента и this для изменения внутренних компонентов PHP, я выполнил модификацию встроенной функции PDO для работыс удаленными ODBC. И теперь мой код выглядит примерно так:

$db = new PDO("odbc:$_myIP.\odbc.ini; DBQ=Data.mdb;");

Что я делал в конструкции PDO, так это выгрузка файлов с использованием метода form post, submit и Ajax временно ... Это очень рискованно и оченьэгоистичный, потому что эта конструкция не будет работать без определенных библиотек, поскольку есть Ajax. Хотя у всех клиентов это есть, я не вижу в этом проблем.

1 голос
/ 08 ноября 2019

Но я не могу позволить себе использовать его по какой-то причине. Я хочу поместить php на сервер вместе с базой данных, но я хочу разместить odbc (или драйвер odbc) на клиенте, что-то вроде этого:

Драйвер должен быть загружен PHP, которыйявляется «клиентом» в этом сценарии. Значит, вам нужно будет найти соответствующий драйвер MSAccess ODBC для Ubuntu.

Проверьте этот поток SO: Соединение ODBC с MS-Access в Ubuntu

...