0

我有一个访问数据库,我想用 PDO 进行 CRUD。当我的数据库存储在C:\\wamp\\www\\test.accdb我可以连接时。但是,我感兴趣的数据库存储在我们的办公服务器上,位于\\server1\abc\123\test.accdb. \server1 映射到我计算机上的驱动器 z:\。

我的代码看起来像这样(逐字)

<?php
//attempt 1
$file = "\\server1\\abc\\123\\test.accdb";
$dbh = new PDO("odbc:Driver={Microsoft Access Driver (*.mdb , *.accdb)};Dbq=$file");

//attempt 2    
$file = "Z:\\abc\123\\test.accdb";
$dbh = new PDO("odbc:Driver={Microsoft Access Driver (*.mdb , *.accdb)};Dbq=$file");
?>

这两个都给我错误:

SQLSTATE[HY024] SQLDriverConnect: -1023 [Microsoft][ODBC Microsoft Access Driver] '(unknown)' 不是有效路径。确保路径名拼写正确并且您已连接到文件所在的服务器。

我确实连接到服务器。这里有没有人有一些智慧可以分享?

4

1 回答 1

0

作为诊断检查,尝试使用与调用 PDO 脚本相同的机制来调用以下脚本:

<?php
$file = "\\\\server1\\abc\\123\\test.accdb";
if (is_file($file)) {
    echo "File exists.\r\n";
}
else {
    echo "File does not exist.\r\n";
}

这将测试是否允许运行脚本的帐户访问网络并“查看”远程服务器上的文件。如果失败,请检查该帐户的 Windows 权限。

作为进一步的测试,您可以尝试使用您的常规用户帐户从 Windows 命令行运行相同的脚本(可能确实具有访问网络的足够权限)。

于 2013-04-18T21:41:52.763 回答