我试图在Windows机器上用php(xampp)连接到db2,但是它抛出了这个错误:
SQLSTATE [IM002] SQLDriverConnect:0 [Microsoft] [ODBC驱动程序管理器]未找到数据源名称且未指定默认驱动程序
我的功能如下:
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),它应该是可访问的。
答案 0 :(得分:0)
在Windows中,您无需按照PHP manual中的说明下载任何额外的驱动程序。
以下是手册中的相关部分:
在Windows上,PDO_ODBC默认内置在PHP核心中。它与Windows ODBC驱动程序管理器链接,以便PHP可以连接到编目为系统DSN的任何数据库,并且是连接到Microsoft SQL Server数据库的推荐驱动程序。
因此,您需要为DB2定义一个系统DSN(如果您还没有DB2,则此设置可能需要DB2的ODBC驱动程序)并按如下方式实例化PDO:
// Replace SYSTEM_DSN_NAME with appropriate name you setup
$con = new PDO("odbc:SYSTEM_DSN_NAME", $username, $password);