2015-01-12 4 views
0

PHP에서 MSSQL 데이터베이스에 연결하는 중 문제가 발생합니다.mssql 인스턴스에 PHP pdo 연결

동일한 Linux 서버에 2 개의 응용 프로그램이 있습니다.

  • 응용 프로그램 A는 "간단한"MSSQL 서버 + 데이터베이스에 연결되며 아무런 문제가 없습니다.
  • App B는 MSSQL 서버 + INSTANCE + 데이터베이스에 연결하고 연결에 실패합니다.

데이터베이스가 MSSQL 서버의 "인스턴스"내에 있다는 사실은 유일한 차이점 인 것 같습니다.

설명서는 인스턴스 내의 데이터베이스에 연결하는 방법을 지정하지 않는 것으로 나타납니다.

예 (의사) 코드 :

SQLSTATE[HY000] Unable to connect: Adaptive Server is unavailable or does not exist (severity 9) 

내가 무엇을보고 많은 다른 DSN의를 시도했다 :

<?php 
$host="10.0.0.12"; 
$instance="specific" 
$database="my-database" 
$username="username"; 
$password="password"; 

$pdo = new PDO("dblib:host=${host}\\${instance};database=${database}", $username, $password); 

이 같은 매우 가치가없는 메시지와 함께 대부분의 시간, 연결에 실패 일할 수도 있지만 아무 것도 작동하지 않는 것 같습니다.

이 기능을 사용하려면 어떤 DSN을 사용해야합니까?

PHP에서이 데이터베이스로 연결하는 또 다른 방법은 제안 사항입니다.

답변

1

모든 MSSQL 서버 인스턴스는 고유 한 포트 번호로 실행됩니다. 동적 포트 대신 고정 포트 번호 (기본값)를 사용하도록 MSSQL Server 인스턴스를 구성 할 수 있습니다.

일단 고정 포트를 구성하면 PDO를 사용하여 해당 포트 번호에 간단하게 연결할 수 있습니다. dsn 또는 다른 설정에서 인스턴스를 참조 할 필요가 없습니다.