2013-01-18 9 views
5

PHP5를 사용하여 Sybase 데이터베이스에 연결하려고합니다. PDO_DBLIB으로 PHP를 성공적으로 컴파일 한 것으로 보았습니다. phpinfo()dblib을 PDO 드라이버로, freetdspdo_dblib으로 표시합니다.PHP를 통해 Sybase에 연결하는 방법

나는 연결을 테스트 할 때

그러나, 나는 오류 독서 얻을 :

'PDOException' with message 'could not find driver'

이 코드 내 LAN의 서버에 연결을 시도하고있다 :

$dbh = new PDO("sybase:host=192.168.1.xxx;dbname=[database-name]", '[user]', '[pass]'); 

을 어떤 제안이라도 대단히 감사하겠습니다!

+0

을 당신이 드라이버를 설치하고 php.ini의 에서 활성화 당신은이 실험 드라이버를 시도 할 수없는 것 같다 에 http : // PHP .net/manual/ko/ref.pdo-dblib.php – shark555

답변

0

PDO가 작동하지 않거나 PHP에 대한 PDO Sybase 지원이 없습니다. Windows에서 ODBC를 사용할 수 있으며 PDO_SQLSRV 또는 PDO_ODBC, 이상하게 들릴 수도 있지만 작동해야합니다. 나는 그것을 추천 할 것입니다

두 번째 옵션은, 사이베이스 (SqlAnywhere)에 직접 연결하는 것입니다,하지만 당신은 당신이 envvars 내부의 LD_LIBRARY_PATH를 넣을 수 있고 읽을 것 같다 우분투를 사용하는 경우는 SQL Anywhere PHP Module

+0

Zdenek Machek, SQL Anywhere PHP Module 링크에 감사드립니다. – zwiebelspaetzle

+0

SQL Anywhere PHP Module을 사용하려고하는데 httpd를 시작하면 "SQLAnywhere 클라이언트 라이브러리를로드 할 수 없습니다."라는 오류 메시지가 나타납니다. LD_LIBRARY_PATH 환경 변수에서 libdbcapi_r.so를 찾을 수 있는지 확인하십시오. 내 httpd.conf 파일에 "SetEnv LD_LIBRARY_PATH/opt/sqlanywhere12/lib64"를 추가했습니다. 그러나 phpinfo는 여전히 Apache 환경 LD_LIBRARY_PATH를/usr/local/apache2/lib로 표시합니다. 제안 사항이 있으십니까? – zwiebelspaetzle

+0

예, 컴퓨터에 Sybase SqlAnywhere 또는 적어도 SqlAnywhere 클라이언트가 설치되어 있어야하며이 라이브러리를 시스템 경로에 추가해야합니다. "echo $ PATH"를 참조하십시오. –

0

를 설치해야합니다. .. 여전히 RHEL 기반 시스템에 집중할 수있는 방법을 찾으려고 노력하고 있습니다. Windows는 내 컴퓨터 -> 속성 -> 고급 옵션 등 시스템 전체 변수를 설정할 수 있기를 희망합니다.

RHEL 기반 시스템을 사용하는 경우 httpd restart 스크립트에서 내보내기 LD_LIBRARY_PATH =/path/to/library /를 포함하는 것이 더 나을 수 있습니다./etc/sysconfig/httpd를로드하고 거기에 라인을 추가하면 아파치를 다시 시작하면 몇 가지 작업이 표시됩니다.

0

이 같은 sybase 대신 dblib를 사용해야합니다

$dbh = new PDO("dblib:host=192.168.1.xxx;dbname=[database-name]", '[user]', '[pass]');