You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

64位Windows+IIS环境下PHP调用32位ODBC驱动架构不匹配问题求助

解决64位PHP(IIS下)连接32位ODBC驱动的架构不匹配问题

你遇到的错误是典型的架构不兼容问题:64位PHP程序(运行在64位IIS环境)尝试调用32位ODBC驱动,两者架构不匹配导致连接失败。错误信息如下:

PHP Warning: odbc_connect(): SQL error: [Microsoft][ODBC Driver Manager] The specified DSN contains an architecture mismatch between the Driver and Application,

以下是三种可行的解决方法:

方法一:切换为32位PHP运行环境

  • 卸载当前服务器上的64位PHP,下载对应版本的32位PHP安装包并解压部署
  • 打开IIS管理器,找到对应网站的应用程序池,进入「高级设置」,将「启用32位应用程序」选项设为True
  • 更新IIS的PHP处理程序映射,确保指向32位PHP目录下的php-cgi.exe
  • 重启IIS服务,重新测试odbc_connect连接

方法二:配置32位专属ODBC数据源

  • 64位Windows系统中,32位ODBC驱动需要通过32位ODBC管理器配置,打开路径:C:\Windows\SysWOW64\odbcad32.exe
  • 在该工具中创建或修改目标DSN,确保选择的是32位版本的ODBC驱动(64位ODBC管理器C:\Windows\System32\odbcad32.exe无法识别32位驱动)
  • 配置完成后,在PHP代码中直接使用这个32位DSN进行连接

方法三:替换为64位ODBC驱动(如果可用)

  • 检查目标数据库是否提供官方64位ODBC驱动,若有则下载安装
  • 打开64位ODBC管理器(C:\Windows\System32\odbcad32.exe),创建对应DSN并选择64位驱动
  • 保持当前64位PHP和IIS配置不变,重新测试连接

额外注意事项

  • 若服务器上同时运行64位和32位应用,需为该PHP应用单独创建独立的应用程序池,避免影响其他应用
  • 修改配置后务必重启IIS或对应应用程序池,确保配置生效
  • 测试时可编写简单的PHP脚本,捕获odbc_connect的错误信息,便于快速排查问题

内容的提问来源于stack exchange,提问作者Irshad PA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 04:04:56