2009-10-29 3 views
0

PHP를 사용하여 웹 사이트를 설정하여 ODBC 연결을 통해 Sybase 데이터베이스 (이미 사내 응용 프로그램 용으로 사용 중임)와 통신하므로 필드의 사용자가 in -house db. 이것은 2003 NT 서버에 있었고 모든 것이 정상적으로 작동했습니다.PHP ODBC 연결이 Sybase 데이터베이스에 연결되지 않음

그런 다음 XP Pro 컴퓨터 (이번에는 혼자서)에서 유사한 사이트를 설정하고 웹 사이트에 액세스 할 수 있고 PHP 프로그래밍이 작동하는 동안 PHP 페이지는 db에 액세스 할 수 없습니다. 나는 오류가 없으며 두 사이트 (작업 중이거나 작동하지 않음) 사이에 phpinfo을 확인했으며 아이디어가 떠오르지 않았습니다.

XP Pro의 구성이 2003 NT 시스템과 다른 경우 ODBC를 통한 데이터베이스 연결이 작동하지 않는다고 확신합니까? ODBC는 두 시스템에서 동일한 방식으로 설정됩니다.

<?php 
$Page_Name = "apptlist1.php"; 
import_request_variables('gpc'); 

$db_host = "wintermlocal"; 
$db_server_name = "winpest"; 
$db_name = "windata.db"; 
$db_file = "c:\data\windata.db"; 
$db_conn_name = "php_script"; 
$db_user = "dba"; 
$db_pass = "sql"; 
//================================================================ 
$connect_string = "Driver={Adaptive Server Anywhere 7.0};" 
    ."CommLinks=tcpip(Host=$db_host);" 
    ."ServerName=$db_server_name;" 
    ."DatabaseName=$db_name;" 
    ."DatabaseFile=$db_file;" 
    ."ConnectionName=$db_conn_name;" 
    ."uid=$db_user;pwd=$db_pass"; 
//================================================================ 

$connect = odbc_connect($connect_string,'',''); 
?> 

Warning: odbc_connect() [function.odbc-connect]:

SQL error: [Microsoft][ODBC Driver Manager]

Data source name not found and no default driver specified

SQL state IM002 in SQLConnect in C:\Inetpub\wwwroot\allpro\apptlist1.php on line 22

+0

DB 유형의 드라이버가 있습니까? –

+0

odbc 관리자에서 sybase (성공적으로)에 대한 odbc 연결을 설정 한 다음 php odbc connect를 사용하여이를 활용하십시오. – amrobinson

+0

코드일까요? –

답변

0

당신은 $의 doresult가 0 인 말을하고 있지만, 사실 문제는 올바른, $ 연결은 0 점이다?

.db 파일의 보호 일 수 있습니다.

데이터베이스가 이미 일부 ASA 서비스 엔진 (server = winpest, dbname = windata를 정의)에 의해 실행 되었습니까? 아니면 필요한 경우 PHP 스크립트가 엔진을 시작하기를 기대합니까? 이 경우, 시스템 경로에없는 데이터베이스 엔진 (dbeng7) 주변에서 문제가 발생하여 ODBC 드라이버가 요청시 엔진 데이터베이스를 시작하지 못하게합니다.

+0

실제로 dbeng7.exe 대신 다중 사용자 프로그램 인 dbsrv7.exe를 사용합니다. 'dbserv7.exe'프로그램이 들어있는 디렉토리가 아니라 경로에 있어야한다는 것을 의미합니까? 또한 권한 문제로 인해 데이터베이스 파일이있는 폴더를 업데이트했거나 사용자 계정으로 어떤 작업을 수행해야합니까? – amrobinson

+0

아니요, 평상시처럼 "dbsrv7.exe"자체가 아니라 PATH에 있어야하는 dbsrv7.exe의 디렉토리 이름입니다. – pascal

+0

경로를 두 번 확인하고 ENG 변수 설정을 시도하고 웹 파일 폴더의 사용 권한을 살펴 보았습니다. 여전히 작동하지 않습니다. – amrobinson