【问题标题】:Unable to connect to access database using php无法使用php连接访问数据库
【发布时间】:2015-06-27 20:15:44
【问题描述】:

我无法通过 php 连接访问数据库。 我已经在互联网上搜索了这个问题。这是我的第三天,我正在尝试这个但找不到解决方案。 我已经安装了所有必需的东西: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 扩展名)

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

【问题讨论】:

    标签: php ms-access pdo odbc wampserver


    【解决方案1】:

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

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

    【讨论】:

    • Gord...如果你有时间可以看看这个吗:stackoverflow.com/questions/29774178/…
    • 我已经添加了这个空间,但仍然遇到同样的错误。
    • @zDepco - 拥有您的代码echo (8 * PHP_INT_SIZE) . "-bit"; 并确保它与您安装的 Access 2013 版本(64 位或 32 位)的“位数”相匹配。
    • 这一行打印“32位”,我的访问版本也是32位(关于访问,它显示:Microsoft Access 2013 (15.0.4701.1001) MSO (15.0.4701.1000) 32-bit )
    【解决方案2】:

    只要只需要支持.mdb-files,你可以试试这个:

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

    这对我来说很好。

    似乎默认没有安装“Microsoft Access Driver (*.mdb, *.accdb)”。在注册卡Drivers中打开C:\Windows\SysWOW64\odbcad32.exe。

    就我而言 - 我认为这是标准的办公室/访问安装行为 - 只是 Microsoft Access Driver (*.mdb)。

    如果您需要支持 .accdb 文件,则需要安装“Microsoft Access Database Engine 2010 Redistributable”: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 位 office 组件的错误报告,但安装了 32 位 office。有没有人想办法解决这个问题?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-18
      • 1970-01-01
      • 2016-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多