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:未找到数据源名称且未指定默认驱动程序的主要内容,如果未能解决你的问题,请参考以下文章

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

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

Odbc 连接 - [ODBC 驱动程序管理器] 未找到数据源名称且未指定默认驱动程序

使用 pyodbc 导致错误:未找到数据源名称且未指定默认驱动程序

ADODB 连接 - 错误:未找到数据源名称且未指定默认驱动程序

未找到 Python MS Access 数据源名称且未指定默认驱动程序 [重复]