2013-10-21 3 views
0

여기에 500 오류가 발생했습니다.PHP로 mssql 서버에 연결할 수없는 이유를 알아낼 수 없습니다

$myServer = "MICKMAN\Mickman"; 
$myUser = "tester"; 
$myPass = "tester"; 
$myDB = "movieDB"; 

$con = mssql_connect($myServer, $myUser, $myPass); 
    if (!$con) 
    { 
     die('Could not connect: ' ); 
    } 

저는 PHP 5.4를 사용 중이며 phpinfo는 sqlsvr이 활성화되어 있음을 보여줍니다. 이 확장을 php.ini에 추가했습니다 :

extension=php_sqlsrv_54_nts.dll 

저는 ODBC를 Windows에 설치하고 MSSQL Studio에서 사용자를 생성했습니다. 내가 무엇을 놓치고 있는지 잘 모르겠습니다. PHP 오류가 심지어 표시되지 않습니다. 내가 액세스하려고하면 빈 페이지가 나타납니다.

이전에 PHP로 DB에 연결했지만 이전에 원격 연결을 설정하지 않았습니다. 나는 내가 발견 할 수있는 많은 하우투를 시도해 왔고 여전히 같은 문제를 가지고있다.

+1

MSSQL 데이터베이스에 연결하기 위해 PDO를 사용하는 것이 훨씬 나을 것입니다. 훨씬 간단하고 훨씬 더 많이 지원됩니다 :-) –

+2

문제에 대한 실제적인 세부 사항을 포함 할 수있을 때 고정 된 문자열을 오류 메시지로 출력하지 마십시오. 'die ('Connect not connect :'. mssql_get_last_message());'를 시도하십시오. –

답변

0

SQL Server PDO 드라이버 (추가 정보 here)를 사용해야합니다.

당신이 드라이버를 설치하고 활성화 한 후에는 다음과 같이 연결을 테스트 할 수 있습니다

try { 
    $host = new PDO('sqlsrv:server=localhost;Database='.$database, $username, $password); 
    foreach($host->query('SELECT * FROM SOME_TABLE') as $row) { 
     print_r($row); 
    } 
    $host = null; 
} catch(PDOException $e){ 
    die('Connect not connect: '.$e->getMessage()); 
} 
0

당신은 php_mssql.dll extension에 의해 제공됩니다 mssql_connect을 사용하려고합니다. 이 확장은 php (> 5.3)에 더 이상 포함되지 않습니다. sqlsrv 접두사가 붙은 php_sqlsrv_54_nts.dll에서 제공하는 함수를 사용해야합니다.

$myServer = "MICKMAN\Mickman"; 
$connectionInfo = array(
    "UID" => "tester" 
, "PWD" => "tester" 
, "Database" => "movieDB" 
); 

$con = sqlsrv_connect($myServer, $connectionInfo); 
if($con === false) { 
    echo "Unable to connect."; 
    die(print_r(sqlsrv_errors(), true)); 
} 
관련 문제