2

我正在尝试通过 PDO_ODBC 访问 PHP 中的 ODBC 连接。这是我的代码:

$db = new PDO('odbc:MyDSN', '', '');

我收到了这个错误:

SQLSTATE[IM002] SQLConnect: 0 [Microsoft][ODBC Driver Manager] 未找到数据源名称且未指定默认驱动程序

我知道 DSN 正在工作,因为我可以在 Python 中通过 pyodbc 使用它。类型是用户 DSN - 是否需要是系统 DSN?我没有指定驱动程序,因为我认为 ODBC 正在抽象它,但也许我需要?底层数据库是 Oracle,如果有帮助的话。

谢谢!

4

1 回答 1

5

实际上有两个独立的 Microsoft ODBC Administrator 应用程序,一个用于 32 位,一个用于 64 位。

正如这篇知识库文章所解释的:

Odbcad32.exe 文件的 32 位版本位于 %systemdrive%\Windows\SysWoW64 文件夹中。

64 位版本的 Odbcad32.exe 文件位于 %systemdrive%\Windows\System32 文件夹中。

不,不是错字——32 位版本在SysWoW64文件夹中,64位版本在文件System32夹中。(o_O)

我正在运行一个 64 位 Web 服务器,它正在检查 DSN 的 64 位 ODBC 库,而我在 32 位中拥有它。降级服务器就可以了。

于 2013-07-24T22:29:36.473 回答