【问题标题】:PHP-PDO ODBC driver can't connect to MS Access MDBPHP-PDO ODBC 驱动程序无法连接到 MS Access MDB
【发布时间】:2015-01-19 18:17:43
【问题描述】:

我在这里遇到了一个非常奇怪的问题。

这里是上下文:

我有一个旧的 MS Access 97 .mdb 文件,我想在 IIS 上运行的 HTML、PHP、JQuery 构建的内部网页上使用它。

现在我知道 php 的 odbc 驱动程序已经实现,但由于我已经在与此链接的其他一些页面中使用 PDO,因此我决定在此项目中也使用 PDO。

因此,在启用扩展和所有 PDO odbc 驱动程序正常工作后,我复制了 .mdb 文件并将其命名为 DBcopy.mdb 到项目文件夹中。

我编写了代码并执行了一些测试(以确保一切都按预期工作)并且一切看起来都很好。

然后我将 .mdb 的路径更改为 //myothernetworkdrive/somedirectory/DBreal.mdb 这是“真正的” .mdb 文件所在的位置,然后我突然收到此消息:

SQLSTATE[HY000] SQLDriverConnect: -1032 [Microsoft][Pilote ODBC Microsoft Access] Le moteur de la base de données Microsoft Jet ne peut pas ouvrir le fichier '(Inconnu)'. Il est déjà ouvert en mode exclusif par un autre utilisateur, ou vous devez avoir l'autorisation de visualiser ses données.

对于那些不会说法语的人,这里是粗略的翻译:

SQLSTATE[HY000] SQLDriverConnect: -1032 [Microsoft][ODBC Drivers Microsoft Access] Microsoft Jet can't open file '(Inconnu)'. It is already open in exclusive mode by another user, or you need permission to access these data.

由于错误消息是非常自我解释的,我通过在同一目录中查找 .ldb 文件来检查是否有人锁定了 .mdb 文件,但找不到,所以我假设 .mdb 没有被锁定.

有人知道为什么我可以访问副本但不能访问原件吗?我能看到的唯一区别是那里的目录: Copy- 与项目位于同一文件夹中。 Real- 位于 IIS 有权访问的网络驱动器上

编辑:

@Halayem Anis, 我不使用 Apache,我使用的是 IIS,但由于您的观点无论如何都是有效的,因此我允许每个人更改/写入/读取/totalcontrol 对 .mdb 文件进行更改/写入/读取/totalcontrol,但仍然是相同的错误代码。

EDIT2:

我正在使用这个连接字符串:

new \PDO("odbc:DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\\\\myothernetworkdrive\\somedirectory\\DBreal.mdb; UID=Admin; PWD=;");

会不会是我的连接字符串不好?

EDIT3:

我在 IIS 的 ODBC 驱动程序管理器中添加了一个 DSN,名称为“testDSN”,指向我的 .mdb 文件,并且我让 IIS 用户完全控制 .mdb 文件及其所在的文件夹。

我还将连接字符串更改为:

new \PDO('odbc:testDSN');

但我仍然收到相同的错误消息。

【问题讨论】:

    标签: php pdo


    【解决方案1】:

    错误信息可能会让您误入歧途,请执行以下步骤:

    1. 要通过 Apache 访问 UNC 路径,您必须在 Apache 服务中设置所需的凭据(请参阅服务 **=>** Apache **=>** 登录)
    2. 验证 Apache 使用的用户是否有权读取/写入您的 MDB 文件

    【讨论】:

    • 不使用 Apache 但仍然使用 IIS 我授予每个人访问该文件的权限。还是一样的错误信息
    猜你喜欢
    • 2016-07-24
    • 2015-05-29
    • 2019-05-08
    • 1970-01-01
    • 1970-01-01
    • 2016-05-16
    • 1970-01-01
    • 1970-01-01
    • 2019-07-15
    相关资源
    最近更新 更多