使用ODBC

时间:2017-04-27 10:21:45

标签: php ms-access pdo odbc wamp

由于某些原因,我需要在PHP应用程序中使用ms-access,因此我在WAMP中启用了php_pdo_odbc扩展。其中显示在phpinfo()

但我无法连接数据库,它会返回以下错误。

  

(!)致命错误:带消息的未捕获异常'PDOException'   'SQLSTATE [IM002] SQLDriverConnect:0 [Microsoft] [ODBC驱动程序管理器]   未找到数据源名称且未指定默认驱动程序   第15行的C:\ wamp64 \ www ... \ portals ... \ config.php

     

(!)> PDOException:SQLSTATE [IM002] SQLDriverConnect:0   [微软] [ODBC   驱动程序管理器]未找到数据源名称且没有默认驱动程序   在第15行的C:\ wamp64 \ www ... \ portals ... \ config.php中指定

$db_username = ''; //username
$db_password = ''; //password

//path to database file
$database_path = "StudentLogInData.mdb";

//check file exist before we proceed
if (!file_exists($database_path)) {
    die("Access database file not found !");
}

//create a new PDO object
$database = new PDO("odbc:DRIVER={Microsoft Access Driver (*.mdb, *.accdb)}; DBQ=realpath($database_path); Uid=$db_username; Pwd=$db_password;");

我在Windows 7(64位)上使用WAMP 64位版本。搜索了很多Stackoverflow的解决方案,例如尝试运行32位版本,但它不能安装在64位上。请帮助如何使它工作?

1 个答案:

答案 0 :(得分:2)

realpath()是一个PHP函数,不是ODBC驱动程序理解的东西。您可能希望将其从DSN中删除:

$database_path = realpath("StudentLogInData.mdb");
$database = new PDO("odbc:DRIVER={Microsoft Access Driver (*.mdb, *.accdb)}; DBQ=$database_path; Uid=$db_username; Pwd=$db_password;");

关于驱动程序名称,您需要在开始菜单中键入ODBC,并验证驱动程序选项卡中是否有可用的名称:

ODBC Manager