【问题标题】:PDO_ODBC: Data source name not found and no default driver specifiedPDO_ODBC:未找到数据源名称且未指定默认驱动程序
【发布时间】: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,如果有帮助的话。

谢谢!

【问题讨论】:

    标签: php pdo odbc


    【解决方案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 位的。降级服务器就可以了。

    【讨论】:

      猜你喜欢
      • 2014-12-05
      • 1970-01-01
      • 2013-09-06
      • 2018-02-13
      • 2011-11-24
      • 2011-06-02
      相关资源
      最近更新 更多