PHP ODBC connect()到Access - 架构不匹配

时间:2012-02-09 22:32:14

标签: php ms-access odbc

我现在用Google搜索了几个小时。

我读过无数文章,例如:Is there a Windows 7 ODBC driver for Access?

我尝试过使用ODBC管理员 - 并且已成功为两者添加系统DSN:

  • Microsoft Access数据库
  • Microsoft do Access Database

当我尝试连接到本地存储的Access DB时:

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

我收到以下错误:

  

odbc_connect():SQL错误:[Microsoft] [ODBC驱动程序管理器]指定的DSN包含驱动程序和应用程序之间的体系结构不匹配,第3行的C:\ export \ export.php中的SQLConnect中的SQL状态IM014

简单脚本尝试安装最新的访问驱动程序 - Aquarius2我的DSN名称仍然失败。

我没有想法 - 我错过了什么?

此致 亚历

2 个答案:

答案 0 :(得分:18)

您正在尝试将64位应用程序与32位ODBC驱动程序一起使用,反之亦然。看看ODBC on 64-bit Windows Platforms

您需要先确定您的PHP应用程序是64位还是32位。

然后,一旦确定需要启动正确的ODBC管理员 - 其中有2个,一个用于32位,一个用于64位。 64位ODBC管理员位于管理工具,控制面板中,32位的管理员位于%windir\syswow64\odbcad32.exe

将应用程序体系结构与正确的ODBC管理员匹配后,需要创建系统DSN。如果在管理员中找不到MS Access驱动程序,则需要为该体系结构下载一个。我不确定是否有64位MS Access ODBC驱动程序;如果没有,您将不得不更改您的应用程序架构。

The article I referenced有更多信息。

答案 1 :(得分:4)

另一个注意事项:如果您安装了64位WampServer,它会安装64位的所有东西 - Apache,MySQL,PHP。如果你想要一个32位的PHP,请转到PHP downloads page并选择一个'win32'版本。并且不要忘记在运行应用程序时更改php路径!这个加上设置了32位ODBC管理员 - %windir\syswow64\odbcad32.exe - 你应该好好去。