无法使用php连接到访问数据库

时间:2015-04-20 21:56:59

标签: php ms-access pdo odbc wampserver

我无法通过php连接到访问数据库。 我在互联网上搜索了这个问题。这是我的第3天,我正在尝试这个,但找不到解决方案。 我已经安装了所有必需的东西:ODBC驱动程序和MS Access数据库引擎。

我连接到名为newDB.mdb的数据库的PHP代码是:

<?php 
$dbName = $_SERVER["DOCUMENT_ROOT"] . "access_db/newDB.mdb";
echo $dbName."<br />";
if (!file_exists($dbName)) {
die("Could not find database file.<br />".$dbName);
}
try {
$db = new PDO("odbc:DRIVER={Microsoft Access Driver (*.mdb,*.accdb)};Dbq=$dbName");
} catch(PDOException $e) {
echo "Error: ".$e->getMessage()."<br />";
}
?>

我收到的错误:

C:/wamp/www/access_db/newDB.mdb
Error: SQLSTATE[IM002] SQLDriverConnect: 0 [Microsoft][ODBC Driver Manager] 
>Data source name not found and no default driver specified

我正在使用本地计算机。

操作系统:Windows8 Pro和WampServer 2.5,Microsoft Access 2013(我将文件导出为.mdb,它也不适用于.accdb扩展名)

我不知道自己缺少什么,或者我需要做什么。

2 个答案:

答案 0 :(得分:0)

您的驱动程序名称缺少空格。它应该是

DRIVER={Microsoft Access Driver (*.mdb, *.accdb)}
                                       ^

答案 1 :(得分:0)

只要需要支持.mdb文件,就可以试试这个:

$db = new PDO("odbc:DRIVER={Microsoft Access Driver (*.mdb)};Dbq=$dbName");

这对我来说很好。

默认情况下,&#34; Microsoft Access驱动程序(* .mdb,* .accdb)&#34;没有安装。在注册卡C:\Windows\SysWOW64\odbcad32.exe中打开Drivers

在我的情况下 - 我认为这是标准的办公室/访问安装行为 - 只是Microsoft Access Driver (*.mdb)

如果您需要支持.accdb文件,则需要安装&#34; Microsoft Access数据库引擎2010可再发行组件&#34;:https://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=13255

安装后,您可以使用

$db = new PDO("odbc:DRIVER={Microsoft Access Driver 
(*.mdb,*.accdb)};Dbq=$dbName");

修改

我找到了安装Office 2016(https://www.microsoft.com/en-us/download/details.aspx?id=54920)的较新版本,但无法安装。 我收到有关使用64位办公组件的错误报告,但安装了32位办公室。有人想解决这个问题吗?