在 Unix 中如何处理 PHP 中的 MS Access?

What to do about MS Access in PHP in Unix?

我需要从 MS Access 2007 中提取数据(mdb 和 accdb 文件),用于用 PHP 编写的网站 7. 页面不需要是动态的或交互式的。他们只需要呈现存储在数据库中的数据。

本地开发环境:Windows7、IIS 7.5

在线服务器:A2 Hosting,Linux(云Linux服务器版本6.9),Apache/2.2.34

ADOdb webpage for Access 表示 "Windows Yes, Unix No"。我想这意味着我可以在我的本地环境中使用 ADOdb 连接到 Access,但不能在在线服务器上连接。我想我有以下选择:

我是否正确理解了我的选择?我已经按照我认为的优先顺序列出了它们,所以除非有人另有建议,否则我想我会选择第三个(提取到 CSV,使用 fgetcsv(),没有 ADOdb),因为前两个不行。

感谢您的帮助。

主要问题是 ODBC 驱动程序。 {Microsoft Access Driver (*.mdb, *.accdb)} 随 Microsoft Access 或 Microsoft Access 数据库引擎一起提供,它们都是 Windows-only。

但是,还有可在 Unix 和 unixODBC 上运行的备用 ODBC 驱动程序。一个流行的开源的是 mdbtools,它是有限的,但是可以使用 PDO 和 ODBC 将 Access 连接到 unix 上的 PHP。还有功能更全面的商业替代品。

一旦你开始工作,在 PHP 中使用 ODBC 驱动程序应该不是问题。请注意,在共享主机上,这可能是不可能的。

或者,您可以使用 php-jdbc bridge with UCanAccess。这可能仍然是全开源的,并且比 mdbtools 功能更齐全,但正确设置起来更复杂。

您不需要将 "the entire database" 从 Access 转换为使用 Mysql,只需要 table。然后,您可以使用 MySql odbc 连接器将它们 link 返回到 Access 数据库中,只要 table 名称相同,您甚至不会注意到差异,所有表单,查询,一切都会工作。

然后您将在本地计算机上安装 MySql 服务器 运行ning,如果您创建一个具有正确权限的用户并通过路由器转发端口(从端口 3306 或任何端口转发流量)你分配给你的服务器,你的机器的端口)并允许流量通过你的防火墙,然后你的网站可以访问,读取和写入你的数据库。

如果你想从php查询数据库,mysqli_query就可以了。大多数网站 运行 来自数据 运行 使用 MySql,因此这也是一个面向未来的解决方案。