PDO连接到网络上的.accdb

时间:2013-04-18 18:19:29

标签: php ms-access pdo

我有一个访问数据库,我想用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   访问驱动程序]'(未知)'不是有效路径。确保   路径名称拼写正确,并且您已连接到   文件所在的服务器。

我确实已连接到服务器。这里有没有人有分享的智慧?

1 个答案:

答案 0 :(得分: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命令行运行相同的脚本。