0

我正在尝试在 Windows 机器上使用 php (xampp) 连接到 db2,但它抛出了这个错误:

SQLSTATE[IM002] SQLDriverConnect: 0 [Microsoft][ODBC Driver Manager] 未找到数据源名称且未指定默认驱动程序

我的功能如下:

 function dbConnect($host, $database, $username, $password)
    {
        try 
        {
            $con = new PDO("odbc:host=$host;dbname=$database", $username, $password);
            $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);   

            return true;            
        } 
        catch(PDOException $e) 
        {
            return $e->getMessage();
        }
    }

注意我的 php_info 如下:

在此处输入图像描述

顺便说一句,我还没有下载/安装任何驱动程序。我的假设是,通过在 php.ini 中启用 (extension=php_pdo_odbc.dll),它应该可以访问。

4

1 回答 1

0

在 Windows 中,您不需要下载任何额外的驱动程序,如PHP 手册中所述。

以下是手册中的相关部分:

在 Windows 上,PDO_ODBC 默认内置在 PHP 核心中。它与 Windows ODBC 驱动程序管理器链接,因此 PHP 可以连接到任何作为系统 DSN 编目的数据库,并且是连接到 Microsoft SQL Server 数据库的推荐驱动程序。

因此,您需要为您的 DB2 定义一个系统 DSN(如果您还没有,此设置可能需要 DB2 的 ODBC 驱动程序)并按如下方式实例化 PDO:

// Replace SYSTEM_DSN_NAME with appropriate name you setup
$con = new PDO("odbc:SYSTEM_DSN_NAME", $username, $password); 
于 2013-09-03T06:00:13.213 回答