由于某些原因,我需要在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位上。请帮助如何使它工作?
答案 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,并验证驱动程序选项卡中是否有可用的名称: