PHP ODBC connect() to Access - architecture mismatch

自作多情 提交于 2019-12-04 19:03:59

问题


I have googled for hours now.

I have read countless articles such as: Is there a Windows 7 ODBC driver for Access?

I have tried using both the ODBC admin - and have managed to successfully add there system DSN for both:

  • Microsoft Access Database
  • Microsoft do Access Database

When I attempt to connect to Access DB stored locally:

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

I get the following error(s):

odbc_connect(): SQL error: [Microsoft][ODBC Driver Manager] The specified DSN contains an architecture mismatch between the Driver and Application, SQL state IM014 in SQLConnect in C:\export\export.php on line 3

Simple script tried installing the latest access drivers - Aquarius2 is the name of my DSN still fails.

I'm out of ideas - what am I missing?

Regards, Alex


回答1:


You are attempting to use a 64 bit application with a 32 bit ODBC driver or vice versa. Look at ODBC on 64-bit Windows Platforms.

You need to determine whether your PHP application is 64 bit or 32 bit first.

Then once you've ascertained that you need to start the correct ODBC administrator - there are 2 of them, one for 32 bit and one for 64 bit. The 64 bit ODBC administrator is in Adminstrative tools, control panel and the 32 bit one is in %windir\syswow64\odbcad32.exe.

Once you've matched your application architecture to the right ODBC administrator, you need to create the system DSN. If you cannot find the MS Access driver in the administrator, you'll need to download one for that architecture. I'm not sure if there is a 64 bit MS Access ODBC driver; if there isn't, you'll have to change your application architecture.

The article I referenced has more information.




回答2:


One other note: if you installed the 64-bit WampServer, it installs 64-bit everything - Apache, MySQL, PHP. If you want a 32-bit PHP to have around, go to the PHP downloads page and choose one of the 'win32' releases. And don't forget to change your php path when you run your application! This plus setting up the 32-bit ODBC administrator - %windir\syswow64\odbcad32.exe - and you should be good to go.



来源:https://stackoverflow.com/questions/9219897/php-odbc-connect-to-access-architecture-mismatch

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!