【问题标题】:Using XAMPP to access .accdb使用 XAMPP 访问 .accdb
【发布时间】:2018-06-18 17:24:26
【问题描述】:

我正在为我和妻子使用的图书数据库开发 Web 界面。我们一直将它保存在 .accdb 中,并且只使用 Access 进行任何更改,但我想让它更易于访问。我在 XAMPP 上运行了一个设置,用于其他事情,所以我在那里创建了一个文件夹来测试它。

<?php
    //$dbName = $_SERVER["DOCUMENT_ROOT"] . "/db/Books.mdb";
    $dbName = $_SERVER["DOCUMENT_ROOT"] . "db/Books.accdb";

    if (!file_exists($dbName)){
        die("No database file.");
    }

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

    $sql = "SELECT * FROM Books ORDER BY author";
    $rs = $db->query($sql);
?>

如果我将文件转换为 .mdb,我可以毫无问题地访问它,但如果我尝试将其作为 .accdb 并将连接字符串更改为 *.accdb 或 *.mdb,*.accdb 会失败:

Uncaught PDOException: SQLSTATE[HY000] SQLDriverConnect: -1028 [Microsoft][ODBC Microsoft Access Driver] Cannot open database '(unknown)'. It may not be a database that your application recognizes, or the file may be corrupt. in C:\xampp\htdocs\_index.php:13 Stack trace: #0 C:\xampp\htdocs\_index.php(13): PDO->__construct('odbc:DRIVER={Mi...') #1 {main}

对于 XAMPP,我认为它将完全独立于机器并使用它自己的驱动程序,但它就像缺少驱动器/连接一样。我已经运行 phpinfo 并确认 ODBC 连接已启用,但我找不到在哪里确认它支持哪些扩展以确保不是问题。

【问题讨论】:

  • 这可能会回答你的问题,但你可能不喜欢这个答案:stackoverflow.com/questions/24712708/…
  • 我的情况并非如此,但这确实有助于解决我的问题。我安装了该帖子中提到的 Access 数据库引擎,现在当我选择 ACCDB 文件并使用包含两个文件扩展名的版本时,我的连接成功并显示数据。谢谢!

标签: php ms-access xampp


【解决方案1】:

嗯...您需要 Access 数据库引擎来处理 .accdb 文件。

您可以在此处下载数据库引擎 2016:https://www.microsoft.com/en-us/download/details.aspx?id=54920

确保在使用 64 位 PHP 时使用 x64 版本的引擎,对于 32 位 PHP,请确保使用 32 位版本。

顾名思义,您需要 Microsoft Access Driver (*.mdb, *.accdb) 用于 accdb 文件。所以在那条线上切换 cmets。

请注意,使用 32 位办公室安装和 64 位 php 可能会遇到麻烦,反之亦然。所以匹配那些。

【讨论】:

  • 这正是我所需要的。我认为是否必须与驱动程序有关,因为它适用于 MDB,但从未听说过数据库引擎。它现在工作并显示正常。谢谢!
猜你喜欢
  • 2010-11-10
  • 1970-01-01
  • 1970-01-01
  • 2016-01-02
  • 1970-01-01
  • 2021-12-18
  • 1970-01-01
  • 1970-01-01
  • 2011-03-20
相关资源
最近更新 更多