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";
}
스크립트가 실행되는 계정이 있는지 여부를 테스트합니다
실행중인 PHP 프로세스는 어떤 사용자입니까? 드라이브를 매핑 한 사용자 계정은 무엇입니까? 드라이브 매핑은 사용자 계정에 의해 수행되므로 관리자로 로그인하고 드라이브를 매핑하지만 PHP 프로세스가 네트워크 서비스 또는 전용 사용자 계정으로 WAMP의 IIS 또는 Apache에서 실행되는 경우 매핑이 없습니다. UNC 경로의 경우,'$ file = "\\\\ server1 \\ abc \\ 123 \\ test.accdb";를 사용하여 시도하십시오; – dlp
입력 해 주셔서 감사합니다. "\\\\ server1 \ abc \\ 123 \\ test.accdb"가 작동하지 않습니다. 같은 오류가 발생합니다. 또한, 나는 그 합병증 네트워크 매핑 된 드라이브 이름과 존재 의심. 나는 "\\ server1 ..... accdb"를 사용하는 것을 선호한다. – GRY
마지막 시도 :'$ file = "\\\\ server1 \\ abc \\ 123 \\ test.accdb"; $ dbh = 새 PDO ("odbc : 드라이버 = {Microsoft Access 드라이버 (* .mdb, * .accdb)}, Dbq = $ 파일, Uid = 관리자") – dlp