数据库连接在PHP与MS Access在Linux主机

我在php上运行。
而在我的本地我正在对Windows环境的工作,所以很容易连接到MS Access数据库使用ODBC连接器。

但在我的实时服务器环境中有Linux,所以在数据库连接方面存在问题。

那么在Linux环境下使用php连接到MS Access DB的步骤是什么?

谢谢
阿维纳什

这不是直接回答你的问题,但它是另一种解决想要使用Access更新Web数据的问题的方法:

您可以将Access数据库移植到实时(Web)服务器上的MySQL,并使用Access作为用户数据库的前端(基本上翻转网站和Access的角色):

您可以使用MySQL连接器驱动程序从Access over ODBC连接到MySQL数据库,并使用“外部数据”工具将表连接到Access。 这样,你就得到了一个(更多)认真的数据库引擎,为网络进行了优化,但保留了用户使用熟悉的工具操纵数据的能力。

Web服务器和客户端网络之间的关系还不清楚。 如果Linux服务器位于客户端的本地局域网上,正在运行Samba,则可以将Access / Jet / ACE数据库存储在Linux服务器上,用户可以在Access中对其进行编辑。

然后,你需要在Linux服务器上运行一个Jet模拟器(据我所知,没有ACE可用于Linux的模拟,所以如果他们的数据库是ACCDB格式,你运气不好,除非我我刚才听说的模拟器已经过时了)。 一些Jet模拟器是只读的,所以要小心。

现在,我不会推荐这种情况,因为Jet / ACE不是为这种应用程序设计的。 它可以在一个小型的办公室/工作组环境中使用SMB网络,但是我不会将它用作任何不是只读,概念验证或非常低读/写量的网站的后端。 我绝对不会推荐拥有相同的MDB作为网站后端,并由交互式Access用户同时使用。

如果这种情况是正确的,那么如果将后端端口连接到在Linux上运行的服务器数据库,则用户仍然可以使用Access。 我一直使用MySQL,由于我是一个Access白痴,我依靠phpMyAdmin来管理我的MySQL数据库。 访问用户应该很容易理解,以便与模式混淆。 使用MyODBC,您可以在Access中设置链接表格,报表和表单等工作方式与Jet后端的工作方式基本相同。

但是我强烈的怀疑你的客户是在一个连接到他们办公室局域网的Linux服务器上托管他们的网站。 更有可能的是,Linux服务器是共享的网络托管,在这种情况下,将没有可用的SMB网络,所以您将无法从网站和交互式用户编辑一个单一的Access数据库。 这是件好事,因为这样做首先是不可取的。

共享主机可以允许开放一个端口到一个服务器数据库(我的网站的托管服务器同时提供MySQL和PostgreSQL,但是只允许远程访问MySQL,并且只能通过主机名/ IP地址。这可能不是很好与办公室局域网任何允许开放的无限制访问数据库服务器的网络主机可能不是你的客户应该使用的一个选项是,如果他们提供VPN支持,在这种情况下,一个VPN可以但是根据我的经验,网络主机为此收取了一个手臂和一条腿(事实上这是不合理的),所以通常不是一个好的选择。

所以,你不可能提供与网站上运行的服务器数据库的实时连接。 在这种情况下,您将以某种方式同步数据库。 如果网站是Access数据库的完整奴隶(即不需要在网站上编辑,添加或删除),那么它可以非常简单,因为您可以编写脚本将数据导出到您上载的文件或文件该网站,然后在网站上进行处理,以取代现有的数据。

如果你有一个多主方案(两个位置都有更新),情况要复杂得多,特别是如果更新必须双向进行的话。 我编写了这个场景的Access端,也就是说,在一个Access数据库上同步一个网站上的MySQL数据库,这不是一个简单的任务。

如果你能在两端获得MySQL,可能会稍微简单一些(假设你可以设置复制,在低端的虚拟主机场景中似乎不太可能),但我不会指望它。

从我对这种情况了解不多的情况来看,我的评估是,您的客户必须对整个事情进行重新思考,因为没有很多解决方法,现实中就没有可能的整合。

有一点需要考虑的是,如果网站不是公开的,但是为了支持远程用户,Access 2010将为SharePoint server 2010集成增加一些惊人的支持,这将允许将Access数据库发布到Sharepoint server并在Web浏览器中运行。 另一方面,如果情况仅限于远程用户,Access应用程序可以在终端服务器上运行,并为每个人节省很多麻烦。

我没有在Linux中访问,但一个快速的搜索给了我这个。

使用Linux和PHP的Microsoft Access数据库

就个人而言,我建议移植到Windows和Linux上的DBMS。 但是如果你不得不坚持访问,你可能会检查:

http://www.unixodbc.org/或http://www.openlinksw.com/

如果您在共享主机上,则Linux服务器很可能不支持ODBC。 你会更好使用SQLite,因为这将在Linux和Windows(和OS X)上工作,没有任何使用PHP的重大问题…