PHP 警告:odbc_connect():指定的 DSN 包含驱动程序和应用程序之间的体系结构不匹配,

PHP Warning: odbc_connect(): The specified DSN contains an architecture mismatch between the Driver and Application,

提问人:Irshad PA 提问时间:11/18/2023 最后编辑:HassaanIrshad PA 更新时间:11/23/2023 访问量:51

问:

我试图使用 PHP Windows 64 位从 IIS 连接 odbc32 连接。我的 odbc 驱动程序是 32 位,而我使用的 IIS 服务器或 Windows 是 64 位,这会导致以下问题。如果有人知道如何解决它,请帮助我 错误:odbc_connect

PHP 警告:odbc_connect():SQL 错误:[Microsoft][ODBC 驱动程序管理器] 指定的 DSN 包含驱动程序和应用程序之间的体系结构不匹配,

PHP 警告:odbc_connect():SQL 错误:[Microsoft][ODBC 驱动程序管理器] 指定的 DSN 包含驱动程序和应用程序之间的体系结构不匹配,

PHP IIS ODBC WAMP

评论

3赞 Lex Li 11/18/2023
32 位和 64 位不能协同工作。因此,您可以在 IIS 上将 IIS 站点配置为使用启用了 32 位的应用程序池,或者找到 64 位 ODBC 驱动程序。
1赞 Álvaro González 11/18/2023
您通常可以在 64 位操作系统中运行 32 位应用程序的原因是,这些操作系统具有专为该用例设计的兼容层,但它们是不同的体系结构。PHP 没有任何兼容层来运行来自不同架构的驱动程序。
1赞 YurongDai 11/21/2023
您遇到的错误表明 ODBC 驱动程序和 PHP 运行时之间的体系结构不匹配。若要解决此问题,需要确保体系结构匹配。

答:

0赞 YurongDai 11/23/2023 #1

遇到的错误表明 ODBC 驱动程序和 PHP 应用程序之间的体系结构不匹配。您有一个 32 位 ODBC 驱动程序,但您的 PHP 在 64 位服务器上运行。若要解决此问题,可以使用以下选项:

  1. 理想情况下,应使用与 PHP 应用程序和服务器的体系结构相匹配的 64 位版本的 ODBC 驱动程序。

  2. 如果无法获取 64 位 ODBC 驱动程序,则可以在服务器上安装 32 位版本的 PHP。默认情况下,IIS 应用程序池以 64 位模式运行。若要运行 32 位应用程序,可能需要将 IIS 配置为启用 32 位应用程序:

  • 打开 IIS 管理器。
  • 在“连接”窗格中,选择 PHP 应用程序使用的应用程序池。
  • 单击右侧窗格中的“高级设置”。
  • 将“启用 32 位应用程序”选项设置为“True”。