PDO_ODBC:未找到数据源名称且未指定默认驱动程序

Rob*_*Rob 2 php odbc pdo

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

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

我收到这个错误:

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

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

谢谢!

Rob*_*Rob 5

实际上有两个单独的Microsoft ODBC管理员应用程序,一个用于32位,一个用于64.

正如这篇 KB文章所解释的:

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

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

不,不是打字错误 - 32位版本在SysWoW64文件夹中,64位在System32文件夹中.(O_O)

我正在运行64位Web服务器,它正在检查DSN的64位ODBC库,而我在32位中使用它.降级服务器就行了.