我正致力于将提交的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连接,但这就是我开始迷路的地方。
问题:
感谢您的帮助! 埃里克
答案 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数据库引擎的本地副本!