PHP ODBC connect() для Access - несоответствие архитектуры

У меня уже много часов.

Я прочитал бесчисленные статьи, такие как: есть ли драйвер ODBC для Windows 7 для доступа?

Я попытался использовать оба администратора ODBC, и им удалось успешно добавить туда системный DSN для обоих:

  • База данных Microsoft Access
  • Microsoft делает базу данных Access

Когда я пытаюсь подключиться к базе данных Access, хранящейся локально:

odbc_connect('Aquarius2', '', '');

Я получаю следующие ошибки:

odbc_connect(): ошибка SQL: [Microsoft] [диспетчер драйверов ODBC] Указанный DSN содержит несоответствие архитектуры между драйвером и приложением, состояние SQL IM014 в SQLConnect в C:\export\export.php в строке 3

Простой скрипт попытался установить последние драйверы доступа - Aquarius2 - это имя моего DSN, которое все еще терпит неудачу.

У меня нет идей - чего мне не хватает?

С уважением, Алекс

Ответ 1

Вы пытаетесь использовать 64-битное приложение с 32-разрядным драйвером ODBC или наоборот. Посмотрите на ODBC на 64-битных платформах Windows.

Вам нужно определить, будет ли ваше приложение PHP 64-битным или 32-битным первым.

Затем, как только вы убедитесь, что вам нужно запустить правильный администратор ODBC, их 2, один для 32 бит и один для 64 бит. 64-разрядный администратор ODBC находится в инструментах Adminstrative, панели управления и 32-разрядной версии находятся в %windir\syswow64\odbcad32.exe.

После того, как вы сопоставляете свою архитектуру приложений с правильным администратором ODBC, вам необходимо создать системный DSN. Если вы не можете найти драйвер MS Access у администратора, вам нужно загрузить его для этой архитектуры. Я не уверен, есть ли 64-битный драйвер ODBC MS Access; если этого не произойдет, вам придется изменить архитектуру приложения.

В статье, на которую я ссылаюсь, содержится больше информации.

Ответ 2

Еще одно замечание: если вы установили 64-разрядный WampServer, он установит 64-битное все - Apache, MySQL, PHP. Если вам нужен 32-разрядный PHP, перейдите на страницу загрузки PHP и выберите один из выпусков win32. И не забудьте изменить свой php-путь при запуске приложения! Это плюс настройка 32-разрядного администратора ODBC - %windir\syswow64\odbcad32.exe - и вам должно быть хорошо идти.