PHP:远程连接到 MS Access 2013

Posted

技术标签:

【中文标题】PHP:远程连接到 MS Access 2013【英文标题】:PHP: Remote connection to MS Access 2013 【发布时间】:2014-08-15 14:52:09 【问题描述】:

我有一个客户需要我们将联系表单记录插入到他们的 Access 2013 数据库中,该数据库在他们的办公室本地托管,该数据库具有静态 IP 地址。数据库文件在所有员工之间共享在网络驱动器上。

我知道这是可能的,但我只是不知道最简单的方法。所以,我的问题是:建立这个数据库连接最不痛苦的方法是什么?

我也不想将他们的网络驱动器设置为我们服务器上的网络驱动器,以确保他们的驱动器安全。我认为最好的方法是通过他们网络上的计算机进行连接,然后通过那里访问共享数据库。

【问题讨论】:

我更新了我的答案以解释 php 的文件路径名是什么样的。如前所述,运行 PHP 软件的系统将需要对 Access 数据库的直接文件权限,例如读取 + 写入,并且 PHP 中用于“连接”到数据库的任何字符串将始终解析为标准 windows 文件位置并需要标准 windows 网络. 【参考方案1】:

你没有连接到一个 powerpoint 文件,你打开它。

你没有连接到一个word文件,你打开它。

你没有连接到一个文本文件,你打开它。

奇迹的奇迹,就像办公室的其他部分一样,同样适用于位于某个文件夹中的 accDB 文件。您永远不会连接到 Windows 文件,您需要权限才能打开该文件。事实上,您需要 WINDOWS 网络系统才能打开这样的文件。

这里的目标是您需要在 windows 计算机上对该 windows 文件具有读写权限。

您无法连接到一台计算机以打开另一台计算机上的文件。 (除非你采用远程桌面之类的东西——但这是一个 100% 不同的问题)。

所以你不要建立一些数据库连接,你也不能建立一些数据库连接。

您必须能够打开文件,并且技术层必须与 Windows 操作系统兼容。因此,例如,如果文件放在 Linux 机器上,那么您必须安装 Windows 网络系统 (Samba) 并设置映射驱动器,或者至少设置 ***(虚拟专用网络)。因此,该文件夹需要显示为映射驱动器,或者交替出现在您的网络邻居中,然后您浏览到该远程网络上的计算机,然后打开该计算机上的文件夹,然后您才能打开该文件。

我再说一遍:

您没有连接到文件,您需要 windows 文件系统来打开文件。使用术语“连接”来代替打开 word 文件、Excel 文件或在这种情况下的 accDB 文件是没有意义的。

您当然可以使用基于套接字的技术(如 TC/IP)连接到 Web 服务器或数据库服务器。但是在这种情况下,您只需要打开一个平面 Jane windows 文件,并且目标计算机上的该文件必须具有允许您使用 windows 文件系统打开该文件的 windows 网络系统。这里没有“连接”的概念。

当然,这里的另一个问题是这种连接速度很慢——比典型的办公网络慢大约 100 倍。你真的需要阅读我的以下文章来了解这个限制和速度问题:

http://www.kallal.ca//Wan/Wans.html

现在我们已经确认您没有连接到数据库,但所有用户都必须能够打开该文件。

假设他们与您所说的在同一个网络上,那么只需让用户浏览到数据库所在的文件夹,然后他们可以双击它。

如果您使用 PHP,那么 ANY 和 ALL 连接字符串实际上将解析为标准 windows 文件位置。假设您网络上的所有用户都直接使用该文件,那么您的 PHP 字符串中打开该文件的路径名将是:

\\IP-address\folderName\myDatabase.accDB

如上所述,用户将需要对上述文件和文件夹的完全权限。如果 PHP 是通过网站运行的,那么运行该网站的计算机将需要对网络上的文件夹的完全权限,并且如前所述,它们都必须是同一个 windows 网络的一部分。当然,如果他们使用网站,那么只有网站需要直接的 windows 网络和文件打开能力(但同样,您需要从该 web 服务器通过 windows 网络直接文件位置和打开能力)。

【讨论】:

以上是关于PHP:远程连接到 MS Access 2013的主要内容,如果未能解决你的问题,请参考以下文章

使用 PHP 连接远程 MS Access DB

使用 MS Access 和 ODBC 连接到远程 PostgreSQL

无法连接到远程 MS Access 数据库

多个 MS Access 前端连接到单个远程 SQL Server 后端

使用 PHP 连接到 MS Access DB

如何在线获取静态 MS-Access DB 并使用 PHP 连接到它?