PDO_ODBC:未找到数据源名称且未指定默认驱动程序
Posted
技术标签:
【中文标题】PDO_ODBC:未找到数据源名称且未指定默认驱动程序【英文标题】:PDO_ODBC: Data source name not found and no default driver specified 【发布时间】:2013-07-24 09:32:23 【问题描述】:我正在尝试通过 PDO_ODBC 访问 php 中的 ODBC 连接。这是我的代码:
$db = new PDO('odbc:MyDSN', '', '');
我收到了这个错误:
SQLSTATE[IM002] SQLConnect: 0 [Microsoft][ODBC Driver Manager] 数据 未找到源名称且未指定默认驱动程序
我知道 DSN 正在工作,因为我可以在 Python 中通过 pyodbc 使用它。类型是用户 DSN - 是否需要是系统 DSN?我没有指定驱动程序,因为我认为 ODBC 正在将其抽象出来,但也许我需要?底层数据库是 Oracle,如果有帮助的话。
谢谢!
【问题讨论】:
【参考方案1】:实际上有两个单独的 Microsoft ODBC Administrator 应用程序,一个用于 32 位,一个用于 64 位。
正如this KB 文章所述:
Odbcad32.exe 文件的 32 位版本位于 %systemdrive%\Windows\SysWoW64 文件夹。
64 位版本的 Odbcad32.exe 文件位于 %systemdrive%\Windows\System32 文件夹。
不,不是错字——32 位版本位于 SysWoW64
文件夹中,64 位版本位于 System32
文件夹中。 (o_O)
我正在运行一个 64 位 Web 服务器,它正在检查 DSN 的 64 位 ODBC 库,而我使用的是 32 位的。降级服务器就可以了。
【讨论】:
以上是关于PDO_ODBC:未找到数据源名称且未指定默认驱动程序的主要内容,如果未能解决你的问题,请参考以下文章
Python SQLAlchemy:未找到数据源名称且未指定默认驱动程序
Odbc 连接 - [ODBC 驱动程序管理器] 未找到数据源名称且未指定默认驱动程序
使用 pyodbc 导致错误:未找到数据源名称且未指定默认驱动程序