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


PDO_ODBC: Data source name not found and no default driver specified

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

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

我得到了这个错误:

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

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

谢谢!

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

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

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

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

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

我运行的是一个64位的web服务器,它正在检查64位ODBC库中的DSN,而我的DSN是32位的。降低服务器级别成功了。