从 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 文件读取二进制数据的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Spring 批处理中读取 MS Access db(.mdb 文件)并加载到 mysql db