2015-01-27 2 views
1

좋은 하루. 정말 도움이 필요해.UNC 경로를 통한 PHP의 Foxpro 데이터베이스 연결

PHP에서 foxpro 테이블에 액세스해야합니다.

데이터 소스로 로컬 경로를 사용하여 액세스 할 때 원활하게 작동합니다. 그러나 다른 컴퓨터의 데이터베이스 파일에 액세스하려고하면 컴퓨터에 대한 액세스 권한이 있고 파일이 공개적으로 공유되면 항상 잘못된 경로로 표시됩니다. 여기 내 코드 :

$conn = new COM("ADODB.Connection"); 
$server='172.0.0.8\server'; 
$conn->Open_basedir('Provider=VFPOLEDB.1;Data Source=//172.0.0.8/server/sysprog/system/tempstk.dbf;Collating Sequence=MACHINE'); 
// SQL statement to build recordset. 
$rs = $conn->Execute("SELECT * FROM tempstk"); 

echo "<p>List of couriers:</p><hr>"; 
// Display all the values in the records set 
while (!$rs->EOF) { 
    $fv = $rs->Fields("Prodcode"); 
    echo $fv->value."<br>\n"; 
    $rs->MoveNext(); 
} 
$rs->Close(); 

감사합니다!

답변

0

웹 서버와 파일 서버가 윈도우라고 가정합니까? Internet Information Server에서 익명 인증을 사용하면 요청이 Windows 사용자로 가장합니다. 표준 구성에서는 IUSR이됩니다. 이 사용자는 공유에 액세스 할 수 있어야하며 파일에 대한 읽기/쓰기 권한이 있어야합니다.

IUSR은 로컬 사용자입니다. 도메인에 포함되지 않습니다. 따라서 공유의 보안 설정을 확인하고 IUSR이 포함되어 있는지 확인하십시오.

+0

감사 마르쿠스. 네, 창문에 있습니다. 그리고 저는 XAMPP를 사용하고 있습니다. IIS에서 IUSR이 사용됩니까? 또한 액세스하는 컴퓨터의 공유 설정에 액세스 할 수 없습니다. 나는 권리가 없다. – user3060463

+0

IUSR은 IIS 설치시 만들어집니다. IIS 관리 콘솔에서 다른 사용자로 전환 할 수 있습니다. 거기에 "권한 부여"옵션이 있는지 확인하십시오. 속성에서 익명으로 페이지에 액세스 할 때 사용할 Windows 사용자를 구성 할 수 있습니다. 공유에서 읽기/쓰기 권한이있는 사용자를 선택하십시오. IIS의 가장 (impersonation) 기능을 읽으려면 IIS 웹 사이트를 살펴보십시오. 그들은 거기에 좋은 문서를 가지고 있습니다 –

0

연결 문자열에 오류가있는 것 같습니다.

  1. IP 주소를 서버 이름으로 변경하십시오.
  2. 슬래시를 백 슬래시로 교체하십시오.
  3. DBF 파일 이름을 제거하십시오. 여기

난 그냥 테스트 한 예이며, 내 옆에 잘 작동 :

Provider=VFPOLEDB.1;Data Source=\\hostname\Shared Folders\somefolder\;Password="";Collating Sequence=MACHINE 
+0

@ user3060463 ... 올렉은 정확합니다. 중요한 것은 데이터베이스 파일이있는 PATH에 연결하는 것이지 쿼리 할 특정 .dbf가 아니라 연결하는 것입니다. 그런 다음 해당 경로의 모든 테이블 (또는 구조화 된 경우 하위 경로)에서 선택할 수 있습니다. – DRapp

관련 문제