2014-02-21 4 views
0

와 연결되지 않는하지만MongoDB를 내가 옵션 매개 변수를 사용하여 연결을 시도하고 옵션 매개 변수

try 
    { 
    $connection_url = "mongodb://{$dbuser}:{$dbpass}@{$dburl}:{$dbport}/{$dbname}"; 
    $m = new MongoClient($connection_url, 
          array('connectTimeoutMS'=>30000, 
           'socketTimeoutMS'=>30000) 
         ); 

    } 
    catch (MongoConnectionException $e) 
    { 
    echo $e->getMessage(); 

    } 
    catch (MongoException $e) 
    { 
    echo $e->getMessage(); 
    } 
    catch (Exception $e) 
    { 
    echo $e->getMessage(); 
    } 

이 코드는 단순히 어떤 메시지와 함께 예외로가는 연결되지 않습니다.

옵션 매개 변수를 제거하면 mongodb 서버에 연결됩니다.

왜 매개 변수 옵션과 연결되지 않습니까?

나는 options 매개 변수를 전달하는 다른 방법을 사용하는 경우

오류

메시지

'MongoConnectionException'을 통해

$connection_url = "mongodb://{$dbuser}:{$dbpass}@{$dburl}:{$dbport} 
       /{$dbname}?connectTimeoutMS=30000&socketTimeoutMS=30000"; 
$m = new MongoClient($connection_url); 

그것을 '- 알 수없는 연결 문자열 옵션을 찾을 수' '값이'connectTimeoutMS> 30000 ''

아무 것도 옵션 매개 변수로 작업하지 않습니다.

는 MongoDB를가 mongohq.com

+0

예외 유형은 무엇입니까? 그것은 – Sammaye

+0

유형이어야합니다. 그것은'MongoConnectionException'입니다 –

+0

mongohq이 이것을 할 수 있는지 궁금합니다. 나는'connectTimeoutMS'을 한번도 사용하지 않았기 때문에 시간 초과 한도가 실제로 무엇인지 모른다. – Sammaye

답변

0

MongoClient의 PHP 매뉴얼 페이지에서 지원되지로이 실제로 문서화에 있습니다.

페이지 하단의 ChangeLog에서 언급 한 것처럼 사용중인 옵션에 대한 옵션 (옵션 인수 스타일) 지원은 드라이버 버전 1.3.4에서만 추가되었습니다. 따라서 드라이버 버전을 확인해야 할 수도 있습니다.

+0

내 드라이버 버전이 최신이다. 그것은 1.4.5입니다. –

+0

@ ShaktiSingh 그렇다면이 테스트를 해본 결과 드문 것 같습니다. 주어진 오류는 옵션 검사시 PHP 드라이버에서 발생합니다. 그것은 외부 소스에서 던져지지 않습니다. –