【问题标题】:How to get static MS-Access DB online and connect to it using PHP?如何在线获取静态 MS-Access DB 并使用 PHP 连接到它?
【发布时间】:2011-07-26 13:51:11
【问题描述】:

在工作中,我的任务是使用连接到 MS-Access 数据库的 php 构建在线表单。在你们开始提到在线使用 Access 的缺点之前,此解决方案适用于 INTRAnet 站点,并且流量最小,而且此数据库不是由我创建的,我无法切换到另一个不那么烦人的数据库选项。

准备 MS-Access 数据库 (.accdb) 以在线移动

根据我的研究,使用 PHP 实际连接到 MS-Access 数据库的选择很少,而且我无法找到有关如何获取此数据库的良好文档,该数据库目前仅驻留在共享驱动器上一个 .accdb 文件或其他东西,放到一个我可以尝试连接它的杂乱工作的地方和表格中。目前我什至不确定它是否受密码/用户名保护。老实说,我对使用 MS-Access 一无所知,所以你能给我的任何提示都会很棒。如果它像将 .accdb 转换为 .mdb(我在研究中使用的文件扩展名)一样简单,然后将其放入根目录,那就太好了。到目前为止,我能找到的唯一文档是“不要使用 Access”,哈哈。

使用 PHP 连接到新在线 MS-Access 数据库(无需在服务器上安装任何东西)

现在我需要使用 PHP 连接到这个数据库。我找到了几个选项来执行此操作,但我无法实际访问服务器(除了我们站点的根目录)来安装库/数据源(例如 ODBC)会抑制其中的一些。如果我的逻辑是错误的,我可以通过在站点目录中进行更改来运行该选项,那就太好了!让我知道。我还发现有人推荐 adodb.inc.php 作为一个选项,但(http://phplens.com/lens/adodb/docs-adodb.htm#coding)上的文档对于如何连接,或者特别是一旦我这样做了我如何与之交互。

对不起,伙计们,我知道这是很多东西,但任何帮助都非常感谢,并且尽可能详细和清晰,因为我现在有其他项目在我的盘子上,没有太多时间投入超出我已经花费的研发。谢谢!

【问题讨论】:

  • accdb是2007年以后的access数据库格式,之前是mdb。
  • 我认为没有在 ODBC 中设置就可以从 php 访问它。
  • 没有机会保留他们用来构建此文件的任何 Access 前端,而是使用 SQL Server Express 作为后端?

标签: php ms-access odbc


【解决方案1】:

我很可能错了,但根据我的经验,将 PHP 连接到 Access 数据库的唯一方法是使用 ODBC 驱动程序。我不相信有办法直接建立联系。

【讨论】:

  • 这就是我所担心的。您知道是否可以在我们自己的站点目录中设置 ODBC 内容?正如我上面所说,我无法访问整个服务器。
  • 很可能不是。我什至不知道如何/是否可以在 UNIX 系统上完成,如果这就是你正在处理的。我只在 Windows 机器上建立过这种连接,这需要访问控制面板的数据源组件。
  • 啊,是的,对不起。它是一个 IBM HTTP 服务器 (IHS)。我不知道它运行在什么平台上,因为它们可以在其中许多平台上运行(AIX、HP-UX、Linux、Solaris、Windows 和 z/OS),而且我们的 IT 部门并不是我所说的有帮助的。
  • 这个问题确实在我的侧边栏中弹出,它可能对你有一些方向。祝你好运! stackoverflow.com/questions/1605473/…
  • 谁能提供一些关于 ODBC 实施过程的超级清晰和简明文档的链接?如果我能说服高层相信需要安装它,那么我将需要一些超级简单的东西让他们给它。如果这给他们带来任何麻烦,他们可能不会这样做。
【解决方案2】:

这完全超出了我的专业领域,因为我是一名 Access 开发人员,永远不必在您所处的环境中使用 Access 数据文件,但我的想法如下:

鉴于 Jet/ACE(MDB/ACCDB 文件的数据库引擎)是基于文件的数据库引擎,您需要 SMB 网络访问该文件。无法进行 HTTP 访问。

最简单的做法是将文件放在 HTTP 服务器可以访问的 Windows 文件服务器上,然后通过 ODBC 访问它(对于 Jet/ACE,它是基于文件的,不需要运行任何组件文件所在的文件服务器)。

只要在HTTP服务器上安装了相关的ODBC驱动就可以了。

另一件事:如果您可以使用 Access 2007/2010 将 ACCDB 保存为 MDB 文件,您将拥有更多的灵活性,因为大多数 ODBC 文档是针对 Jet 4,而不是针对 ACE(新与 A2007 一起引入的数据库引擎以及新的文件格式;它仍然是 Jet,只是一个新版本。

【讨论】:

    【解决方案3】:

    Copnsider 使用OpenLink Software'sMulti-tier ODBC to ODBC Bridge

    该产品具有这样的客户端/服务器架构 -

    网络服务器 -- php应用程序 OpenLink Generic ODBC Driver(多层客户端组件)

    Windows 主机 -- 32bit OpenLink Request Broker(多层服务器组件) 用于 ODBC 数据源的 32 位 OpenLink 代理(多层服务器组件) Microsoft Access .mdb 文件 + 配置的 Access ODBC 数据源 (DSN)

    【讨论】:

    • 您与 OpenLink 的制造商有联系吗?您在 SO 上超过一半的帖子推荐它的事实看起来很可疑......
    • 是的 - 我为 OpenLink Software 工作 - 他们是商业 ODBC/JDBC/.Net 驱动程序/提供程序等的作者... 我的帖子没有恶意。我只是建议我们的产品作为经常被误解的场景的解决方案......
    • 我认为当您明确提及您的关联时,您的回复的可信度会提高。如果你不这样做,它会留下一个问题......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-19
    • 2017-04-01
    相关资源
    最近更新 更多