我正在尝试通过PDO_ODBC访问PHP中的ODBC连接.这是我的代码:
$db = new PDO(‘odbc:MyDSN’,”,”);
我收到这个错误:
SQLSTATE[IM002] SQLConnect: 0 [Microsoft][ODBC Driver Manager] Data
source name not found and no default driver specified
我知道DSN正在运行,因为我可以在Python中使用pyodbc.类型是用户DSN – 是否需要是系统DSN?我没有指定驱动程序,因为我认为ODBC正在抽象,但也许我需要?如果有帮助,底层数据库是Oracle.
谢谢!
解决方法:
实际上有两个单独的Microsoft ODBC管理员应用程序,一个用于32位,一个用于64.
正如this KB文章所述:
The 32-bit version of the Odbcad32.exe file is located in the
%systemdrive%\Windows\SysWoW64 folder.The 64-bit version of the
Odbcad32.exe file is located in the %systemdrive%\Windows\System32
folder.
不,不是拼写错误 – 32位版本位于SysWoW64文件夹中,64位位于System32文件夹中. (O_O)
我正在运行64位Web服务器,它正在检查DSN的64位ODBC库,而我在32位中使用它.降级服务器就行了.