PHP远程连接到MS Access 2016数据库

时间:2016-09-06 14:34:16

标签: php windows ms-access

我正致力于将提交的HTML表单中的信息自动输入Access 2016数据库。我对这个过程的理解是有限的,所以我要求你忍受我。

HTML表单存储在64位Windows Server 2008 R2 DC上,该DC是Web服务器的两倍。 PHP也已在此服务器上安装和配置。

数据库存储在单独的64位Windows Server 2008 R2虚拟服务器上。

我已经看过很多关于PHP和SQL(MySQL,SQL Server等)的文章,但很少关于PHP和MS Access。我现在明白我需要建立一个ODBC连接,但这就是我开始迷路的地方。

问题:

  • 我认为需要在Web服务器上设置/配置ODBC连接是否正确?
  • 我是否认为只需要64位ODBC驱动程序? (虽然我非常有信心这是正确的,但我有一个令人烦恼的疑问,因为一些32位计算机将访问HTML表单,所以还需要有32位ODBC驱动程序。看起来很傻,但我想确认一下。)
  • ODBC驱动程序在哪里?我做了一个搜索,它让我下载了#34; Microsoft Access数据库引擎2010 Redistributable"。这是我正在寻找的吗? (我承认,除非它非常明显,否则我倾向于认为我在错误的地方。除非有人能确认“可再分发的”与“'”相同。 ODBC驱动程序',我倾向于认为我看错了。)

感谢您的帮助! 埃里克

1 个答案:

答案 0 :(得分:0)

由于您的Web服务上运行的所有代码都是x64,那么您当然需要x64 Access(ACE)odbc驱动程序。 您选择Access Database Engine 2010 Redistributable是正确的。事实上,你不妨使用2013年的那个。别忘了选择x64版本。

x32或x64计算机连接到网站的事实并不重要 - 服务器和Web代码正在作为x64进程运行,因此您需要使用x64 odbc驱动程序进行访问。

当你指出accDB访问文件CAN BE在另一台服务器上时,该文件名必须位于Web服务器拥有的完全权限的文件夹中。因此,您不使用IP地址,而是使用完全合格的Windows路径名称到合法的Windows文件夹和合法的Windows文件(在这种情况下是访问accDB文件)。所以请记住,您没有连接到Access数据库,但实际上是打开一个Windows文件。您没有连接到word文档,而是打开它。您没有连接到PowerPoint文件,而是打开它。并且您没有连接到Access accDB文件,但您的软件(odbc驱动程序)实际上将打开Access文件的DIRECT Windows OS文件。

因此不像网站或说允许通过套接字连接的SQL服务器(tc / ip + IP地址),Access文件不是基于套接字的系统,但实际上是一个平面jane windows文件,由您的软件在进程中打开。因此,Access文件的打开发生在Web服务器上 - 即使Access的accDB只是插入该服务器的USB跳转驱动器,或服务器网络上的某些其他文件共享。我们谈论Web服务器上打开Access文件的代码 - 因此Access文件必须位于可由运行的Web服务器代码直接访问的文件夹中。

因此,您不需要在第二台服务器上安装ACE数据引擎 - 仅在代码运行的地方,您需要ODBC驱动程序。这里的重要问题是大多数ODBC驱动程序允许您使用数据库引擎“连接”到某个服务器。因为Access是基于文件的,所以必须在使用ODBC驱动程序的计算机上安装ODBC驱动程序和数据引擎。因此,该驱动程序将始终使用ODBC驱动程序在本地和同一计算机上启动数据引擎的副本。当您使用一个SQL驱动程序时,您需要使用Access来执行SQL数据库引擎的本地副本!