从 64 位 php 网站强制连接到 32 位访问数据库

Posted

技术标签:

【中文标题】从 64 位 php 网站强制连接到 32 位访问数据库【英文标题】:Enforce Connection to a 32bit Access Database from a 64bit php website 【发布时间】:2019-12-23 12:41:16 【问题描述】:

我有一个 Joomla 网站,并在其中创建了一个自定义模块,它应该连接到我拥有的这个 Access 数据库。但是,当尝试连接到它时,它找不到这个数据库。据我所知,这是因为我注册为 odbc-datasource 的连接字符串是 32 位的,但 php 是 64 位版本,因此也寻找 64 位 odbc 数据源。那么是否有可能强制它采用 32 位数据源?

【问题讨论】:

【参考方案1】:

不同位大小的程序不能相互通信。 Access x32 和 x64 格式文件之间没有区别。所以不存在 x32 位 Access 数据库。

不同之处在于您选择的数据库驱动程序。有一个 x32 位驱动程序和一个 x64 位驱动程序。如果您的网站以 x64 位运行,则 Access 数据库驱动程序也必须是 x64 位。

大约 20 年来,Windows 都附带 Access x32 位驱动程序。因此不需要安装此驱动程序,但它只有 x32 位,并且仅适用于 mdb 文件。如果您使用较新的 accDB 文件格式,则需要安装更高版本的 Access 数据库引擎(旧的称为 JET,较新的称为 ACE)。您需要 ACE 数据引擎来读取 accDB 文件。如果您要读取 mdb 文件并且还使用 x64 位软件,您还需要 ACE。所以只存在 x32 位版本的 JET(仅读取 mdb 文件)。

如果你想使用 x64 位读取 mdb 文件或 accDB 文件,那么你必须安装 64 位版本。

计算机问世以来?您不能再使用 x32 位软件与 8 位 Atari 计算机通话。您必须匹配您正在使用的所有代码和库的位大小 - 包括连接到数据库的驱动程序软件。不允许混合和匹配不同位大小的软件,从第一台计算机运往家庭以来就是这样。

【讨论】:

以上是关于从 64 位 php 网站强制连接到 32 位访问数据库的主要内容,如果未能解决你的问题,请参考以下文章

将 32 位 VB.Net 连接到 64 位 Access .ACCDB

32 位 pyodbc 读取 64 位访问 (accdb)

将 64 位 Java 应用程序连接到 32 位 ODBC 驱动程序

如何在 64 位平台上创建连接到 32 位驱动程序的数据源?

访问 64 位 ODBC

使用 pyodbc 连接到链接访问数据库