使用 PHP 连接到 MS Access DB

Posted

技术标签:

【中文标题】使用 PHP 连接到 MS Access DB【英文标题】:Connecting to MS Access DB with PHP 【发布时间】:2011-10-27 22:44:19 【问题描述】:

我需要使用 php 访问 MS Access 数据库。

MSAccess 文件的名称可以更改,因此我尝试使用 PHP.net 上显示的 DSN'less 连接字符串。

$mdbFilename='test.mdb';
$user = '';
$password = '';
$connection = odbc_connect("Driver=Microsoft Access Driver (*.mdb);Dbq=$mdbFilename", $user, $password);

我遇到了错误;

Warning: odbc_connect(): SQL error: [Microsoft][ODBC Microsoft Access Driver] Could not find file '(unknown)'., SQL state S1000 in SQLConnect in ...

我需要一些帮助来连接到该文件。

(额外的问题,如果文件扩展名不是“.mdb”,应该是“.bws”)

谢谢

【问题讨论】:

【参考方案1】:

我相信您需要完整路径,而不仅仅是 dbq 参数中的文件名。其他一切看起来都不错。 .mdb 是访问数据库文件的标准扩展名。 .bws 是磁盘映像文件。您可能需要先使用 Daemon Tools 之类的工具提取文件,然后才能使用它。

Windows Vista 或 7 中符号链接的语法是

MKLINK [[/D] | [/H] | [/J]] Link Target

    /D      Creates a directory symbolic link.  Default is a file
            symbolic link.
    /H      Creates a hard link instead of a symbolic link.
    /J      Creates a Directory Junction.
    Link    specifies the new symbolic link name.
    Target  specifies the path (relative or absolute) that the new link
            refers to.

它不适用于网络共享或其他操作系统,但硬链接 (/H) 将允许您为 ODBC 驱动程序创建一个无法与真实事物区分开来的目标。

【讨论】:

.bws 并不是真正的磁盘映像。一些白痴重命名了扩展名。但我需要按原样使用它,因为它在另一个程序中是需要的。 符号链接如果你真的需要重命名而不重命名 (man ln)

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

如何在 PHP7 中连接到 MS Access 数据库?

在 Linux 上从 PHP 连接到 MS Access 数据库

PHP:远程连接到 MS Access 2013

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

使用 PHP 连接远程 MS Access DB

使用 MS Access 2003 连接到 SQL Server 2005