我有一个访问数据库,我想用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 访问驱动程序]'(未知)'不是有效路径。确保 路径名称拼写正确,并且您已连接到 文件所在的服务器。
我确实已连接到服务器。这里有没有人有分享的智慧?
答案 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命令行运行相同的脚本。