2014-04-23 1 views
0
  • Windows 7 Professional의 SQL Server 2012 Express.

    터미널을 통한 PHP pdo mssql 외부 연결이 실패 함

    $query = $pdo->prepare("EXEC $storedProc ?"); 
    $query->bindParam(1, $value); 
    $query->execute(); 
    $spVals = $query->fetchAll(PDO::FETCH_ASSOC); 
    

    모든 좋은, 연결 설정 :

    $sqlconn = "sqlsvr:server=(local)\SQLEXPRESS;database=MyDb"; 
    $pdo = new PDO($sqlconn, $dbuser, $dbpass); 
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    

    그때 내가 저장 프로 시저 실행 :

  • PHP 5.4
  • 7.5

가 나는 PDO-연결을 열 IIS 그리고 나는 기록을 세웠다.

외부 고객과 연결하는 경우 고객에게도 마찬가지입니다. 그러나 단말기 연결을 사용하면 기록 세트를 얻지 못합니다. 연결이 열려 있고 저장 프로 시저가 있지만 실행되지 않았습니다. 유일한 차이점은 터미널이 SQL Server와 동일한 Windows 도메인의 구성원이 아니라는 것입니다.

SQL Server 구성 관리자에서 네트워크 구성을위한 공유 메모리 및 TCP/IP가 활성화됩니다. Sql Server 및 Sql Server Browser Services가 실행 중입니다.

원격 연결을 위해 MSSQL이 설정되었습니다.

마치 $ dbuser가 터미널에서 저장 프로 시저를 실행할 권한이없는 것처럼 보입니다.

하지만 왜?

내 문제에 대한 아이디어가 있으면 필요한 경우 자세한 정보를 요청하십시오.

답변

0

아마도 try & catch를 사용하여 PDO 오류가 있는지 확인할 수 있습니다. 고객이 구속력을 발휘하는 가치있는 일이 있다는 느낌이 들었습니다.

try { $pdo = $db->prepare('blah blah'); $pdo->execute(); } catch (Exception $e) { die($e->getMessage()); }

0

해결.

고객과 문제가있었습니다. 그의 통신 인터페이스는 % 20 (공백)이 있으면 URL 문자열을 읽을 수 없습니다.