2011-05-10 4 views
24

다음 코드를 사용하여 새로운 PDO 연결을 시도하고 있습니다.php와 linux를 통해 pdo를 사용하여 mssql에 연결하기

new PDO("mssql:driver=????;Server={$serverName};Database={$databaseName}", $username, $password, array(PDO::ATTR_PERSISTENT => false, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)); 

사용하는 드라이버가 확실하지 않습니다. 또는 설치 방법. PHP에서 mssql_connect 함수를 사용하여 완벽하게 연결할 수 있지만 대신 PDO 라이브러리를 사용하고 싶습니다.

내 문제를 해결하는 방법에 대한 아이디어가 있거나 내 질문에 더 잘 답변 할 수있는 방법을 알려주십시오. MSSQL에 대한

내 php.ini의 설정은 다음과 같습니다

ssql

MSSQL 지원
활성 영구 링크 0
활성 링크 1
라이브러리 버전 FreeTDS를

지침 로컬 값 마스터를 사용할 수 값
mssql.allow_persistent 켜짐 켜짐
,mssql.batchsize 0 0
는에
mssql.max_links 무제한 무제한
mssql.max_persistent 무제한 무제한에
mssql.connect_timeout 5 5
mssql.datetimeconvert 오프 값
mssql.compatability_mode을 값을 해제 mssql.charset 없습니다
mssql.max_procs 무제한 무제한
mssql.min_error_severity 10 10
mssql.min_message_severity 10 10
mssql.secure_connection 끄기
mssql.textlimit 서버 기본 서버 기본
mssql.textsize 서버 기본 서버 기본
mssql.timeout 오프 60 개 60

감사

답변

29
+0

dblib을 사용하면 누락 된 드라이버 오류가 계속 발생합니다. " '드라이버를 찾을 수 없습니다'라는 메시지와 함께 'PDOException'예외가 잡히지 않았습니다." 나는 mssql_connect가 잘 작동하는 것이 이상하다는 것을 알았지 만, PDO 쪽을 작동 시키려면 뭔가해야만한다. 나는 리눅스에 익숙하지 않은데, 이는 필자가 정렬해야하는 드라이버를 얻지 못한다는 것을 의미 하는가? – richie

+2

php.ini에서 pdo_dblib.so를 활성화하고 Linux에서 FreeTDS를 설정해야합니다. – James

+0

어떻게 configure에서 pdo_dblib을 활성화합니까? 또한 centos 5 32 비트를 사용하고 있는데, 어떻게 설정합니까? – shorif2000

1

시도

$dbh = new PDO ("mssql:host=$hostname;dbname=$dbname","$username","$pw"); 

$hostname may need to be configured as either... 
$hostname.':'.$port; 

또는

$hostname.','.$port; 
+2

'드라이버를 찾을 수 없습니다.'라는 메시지가있는 'PDOException' – richie

4

나는 우분투 14.04 실행하고 (PHP는 리눅스에서) (PHP 창 아래) sqlsrv 또는 dblib를 사용하지 않습니다. MSSQL에 연결을 시도 중 " '드라이버를 찾을 수 없습니다'라는 메시지와 함께"예기치 않은 예외 'PDOException'이 발생했습니다. dblib/sybase PHP 확장이 누락 된 것 같습니다.

sudo apt-get install php5-sybase freetds-common libsybdb5 \ 
&& sudo apache2ctl restart 

작품 벌금을 지금 :

나는 실행했다.

+0

php-sybase 패키지가 문제를 해결했습니다. 나는 다른 것들을 설치할 필요가 없었다. –

관련 문제