从 LAMP 下运行的 MDB 文件读取二进制数据

Posted

技术标签:

【中文标题】从 LAMP 下运行的 MDB 文件读取二进制数据【英文标题】:Read binary data from a MDB-file running under LAMP 【发布时间】:2010-06-05 09:32:03 【问题描述】:

我需要能够连接到 LAMP 环境(在 Linux 上运行)中的 MDB 文件,并最终将转换后的数据插入到 mysql 数据库中。

存储了我需要访问的数据 作为一个 BLOB (Long Binary Data 根据 访问)在 MDB 文件中。我有 还不能真正拥有 查看数据,但有人告诉我 BLOB 由字节组成 字符串。沿线的东西 的:

0x1c 0x10 0x27 0x00 0x00

我需要解析字节字符串和 将这些转换为 人类可读。我确实可以访问 解释的文档 各种字节串。

所以这真的是两个问题:

    如何访问 MDB 文件 通过 php*(在 LAMP 下运行)并读取 BLOB(我没有 可以访问 Windows 平台)? 什么是最好的解析方式 二进制数据(在 PHP* 中)一旦我 能够连接到 MDB 文件吗?

*或者还有其他更合适的方法/语言吗?

【问题讨论】:

【参考方案1】:

有一个连接到基于 Linux 的 MDB 解析工具的 PECL 库。

Reading Access Databases with PHP and PECL

在本文中,我将向您介绍 PHP 的 MDBTools 扩展,它提供了一个 API 以编程方式从 Microsoft Access 数据库文件中读取数据。如果您的项目涉及使用此类文件、提取数据库记录以进行计算或转换为其他格式,您会发现此扩展非常宝贵。来吧,看看它是如何工作的!

您可能需要服务器上的管理员访问权限才能安装必要的库。

如果您可以使用 Windows 服务器,您应该可以使用ADODb 或通过 Windows COM 直接使用 ODBC 连接到文件,如this blog entry 所示。

【讨论】:

很遗憾,我无法访问 Windows 服务器。生产将在运行 LAMP 的托管环境中进行。我刚刚检查过,我的提供商没有 mdbtools。我已经研究过使用 PDO,如下所述:***.com/questions/1605473/… 但似乎托管环境中的 PHP 在编译时支持 PDO/ODBC。哦,好吧... @Buster 我认为任何基于 PDO/ADOdb/ODBC 的解决方案总是需要一个实时数据源来读取 MDB 文件——AFAIK 只能在 Windows 上获得。太糟糕了...您可能必须将其转换为更易于阅读的内容,例如CSV 或 Excel。 @Pekka 我希望阅读有关 PDO(和 ADOdb)并使用无 DSN 连接的信息,但似乎这两种模型都需要 Windows。 sigh ...好吧,我们还有问题的第 2 部分,所以也许我们可以在我去寻找可以让我安装 Windows 的 VPS 提供商时专注于这个问题? @BusterX 是的,看起来您需要一个 PHP 库来读取原始 MDB 文件来执行此操作。 @Buster 你问题的第二部分不是很清楚。 “人类可读”是什么意思?另外,值得在 IMO 上提出一个问题。

以上是关于从 LAMP 下运行的 MDB 文件读取二进制数据的主要内容,如果未能解决你的问题,请参考以下文章

如何在 python 中读取 .mdb 访问数据库文件?

如何在 Spring 批处理中读取 MS Access db(.mdb 文件)并加载到 mysql db

请教c#读取二进制文件的问题

怎么读取列表控件中的数据

用于查询 Access 数据库 (.mdb) 文件的只读方法?

mdb如何转成ttl