PHP ODBC connect() 到 Access - 架构不匹配
我已经用谷歌搜索了几个小时了。
我读过无数文章,例如: Is there a Windows 7 ODBC Access 驱动程序?
我已尝试使用 ODBC 管理 - 并已成功为两者添加系统 DSN:
- Microsoft Access 数据库
- Microsoft do Access 数据库
当我尝试连接到本地存储的 Access DB 时:
odbc_connect('Aquarius2', '', '');
我得到以下错误:
odbc_connect(): SQL 错误:[Microsoft][ODBC 驱动程序管理器] 指定的 DSN 包含驱动程序和应用程序之间的体系结构不匹配,第 3 行 C:\export\export.php 中 SQLConnect 中的 SQL 状态 IM014
简单脚本尝试安装最新的访问驱动程序 - Aquarius2
是我的 DSN 的名称,但仍然失败。
我没有主意了——我错过了什么?
问候, 亚历克斯
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
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您正在尝试将 64 位应用程序与 32 位 ODBC 驱动程序一起使用,反之亦然。查看 64 位 Windows 平台上的 ODBC 。
您需要首先确定您的 PHP 应用程序是 64 位还是 32 位。
然后,一旦您确定需要启动正确的 ODBC 管理器 - 其中有 2 个,一个用于 32 位,一个用于 64 位。 64 位 ODBC 管理员位于管理工具、控制面板中,32 位管理员位于
%windir\syswow64\odbcad32.exe
中。将应用程序体系结构与正确的 ODBC 管理员相匹配后,您需要创建系统 DSN。如果您在管理器中找不到 MS Access 驱动程序,则需要下载适用于该体系结构的驱动程序。我不确定是否有 64 位 MS Access ODBC 驱动程序;如果没有,您将不得不更改应用程序架构。
我引用的文章提供了更多信息。
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.
另请注意:如果您安装了 64 位 WampServer,它会安装 64 位所有内容 - Apache、MySQL、PHP。如果您想要 32 位 PHP,请转至 PHP 下载页面 并选择“win32”版本之一。并且不要忘记在运行应用程序时更改您的 php 路径!再加上设置 32 位 ODBC 管理员 -
%windir\syswow64\odbcad32.exe
- 您应该可以开始了。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.