用于MS访问设置的ODBC


ODBC for MS Access Setup

我正在努力获得ODBC连接,但希望得到一些帮助,以确保设置是正确的。我也希望我能得到一些帮助在编写PHP代码,以验证连接到数据库的工作。

在Windows Server 2008 R2机器上,我浏览到C:'Windows'SysWOW64并运行odbcad32。(这就是我开始感到困惑的地方……我看过的大多数页面都给出了相当基本的信息。)DB为MS Access文件。我该选择哪个选项卡…用户DSN……系统DSN……文件DSN ?

一旦我选择了正确的选项卡,我输入任何数据源名称是正确的吗?(例如,即使文件是"它"。accdb',我可以把名字的数据源'雇员'?"Employees.accdb"?还是必须匹配实际的文件名?

最后,连接到数据库的PHP代码是什么?DB当前是D:'Temp'IT.accdb。我已经在系统DSN选项卡中配置了ODBC,数据源名称为"Employees",并指向DB。我尝试了以下代码:

<?php
$dbName = "Employees";
if (!file_exists($dbName)) {
   die("Could not find database file.");
}
$db = new PDO("odbc:DRIVER={Microsoft Access Driver (*.mdb,*.accdb)}; DBQ=$dbName; Uid=; Pwd=;");

我已经尝试改变$dbName是各种各样的东西,但我所尝试的一切结果都没有找到数据库文件。

有人能帮我一下吗?

有两种方法可以跨网络访问ODBC数据源。您可以挂载一个包含数据库的网络驱动器,并赋予系统用户对它的读/写访问权限(我不推荐这样做);或者使用ODBC桥接,如OpenLink。

如果您想将DB移动到与PHP代码相同的服务器上,那么我认为这个站点点指南应该是有帮助的。

后一种方法是推荐的,也是最简单的方法。为此,您需要将ODBC源设置为包含数据库的服务器上的"System-DSN",您可以随意命名它。"system database"应该选中"none",我建议设置一个用户名和密码。然后安装指向此DSN的ODBC请求代理。
在客户端,您设置ODBC客户端桥接,将其配置为在远程上使用DSN。然后,您需要做的就是在PHP中创建一个这样的dns字符串:

$dsn = "odbc:dsn_name";

请注意,代理确实需要一些注意来设置,但只要您阅读指南,它就非常直接。OpenLink也有一个试用版,这样你就可以弄清楚它是否适合你。为了找出你需要哪些部件,他们还有一个软件选择向导。

这类软件也有其他供应商,但我只使用过OpenLink。