2013-04-18 3 views
0

PDO를 사용하여 CRUD하고 싶은 액세스 데이터베이스가 있습니다. 내 데이터베이스가 C:\\wamp\\www\\test.accdb에 저장되면 연결할 수 있습니다. 그러나 내가 관심이있는 데이터베이스는 사무실 서버의 \\server1\abc\123\test.accdb에 저장되어 있습니다. \ server1은 내 컴퓨터의 z : \ 드라이브에 매핑됩니다.PDO가 네트워크의 .accdb에 연결

SQLSTATE[HY024] SQLDriverConnect: -1023 [Microsoft][ODBC Microsoft Access Driver] '(unknown)' is not a valid path. Make sure that the path name is spelled correctly and that you are connected to the server on which the file resides.

내가 실제로 서버에 연결된 오전 :

내 코드는이 두 가지가 나에게 오류를 제공

<?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"); 
?> 

이 (그대로)처럼 보인다. 여기 누군가는 공유 할 지혜가 있습니까?

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

스크립트가 실행되는 계정이 있는지 여부를 테스트합니다

+0

실행중인 PHP 프로세스는 어떤 사용자입니까? 드라이브를 매핑 한 사용자 계정은 무엇입니까? 드라이브 매핑은 사용자 계정에 의해 수행되므로 관리자로 로그인하고 드라이브를 매핑하지만 PHP 프로세스가 네트워크 서비스 또는 전용 사용자 계정으로 WAMP의 IIS 또는 Apache에서 실행되는 경우 매핑이 없습니다. UNC 경로의 경우,'$ file = "\\\\ server1 \\ abc \\ 123 \\ test.accdb";를 사용하여 시도하십시오; – dlp

+0

입력 해 주셔서 감사합니다. "\\\\ server1 \ abc \\ 123 \\ test.accdb"가 작동하지 않습니다. 같은 오류가 발생합니다. 또한, 나는 그 합병증 네트워크 매핑 된 드라이브 이름과 존재 의심. 나는 "\\ server1 ..... accdb"를 사용하는 것을 선호한다. – GRY

+0

마지막 시도 :'$ file = "\\\\ server1 \\ abc \\ 123 \\ test.accdb"; $ dbh = 새 PDO ("odbc : 드라이버 = {Microsoft Access 드라이버 (* .mdb, * .accdb)}, Dbq = $ 파일, Uid = 관리자") – dlp

답변

0

는 진단 검사로서, 다음과 같은 스크립트를 호출하기 위해 PDO 스크립트를 호출하는 데 사용했던 동일한 메커니즘을 사용해보십시오 네트워크에 액세스하여 원격 서버의 파일을 볼 수 있습니다. 실패하면 해당 계정에 대한 Windows 권한을 확인하십시오.

추가 테스트로 일반 사용자 계정 (아마도 에 네트워크 액세스 권한이 충분합니까)을 사용하여 Windows 명령 줄에서 동일한 스크립트를 실행해볼 수 있습니다.