2012-07-06 5 views
1

다른 컴퓨터에있는 복제본에 쓰기/업로드하는 데 문제가 있습니다.MongoDB 복제 세트에 쓰려고하는 중 PHP 오류가 발생했습니다.

<?php 
//Create a connection 
$connection = new Mongo("mongodb://user:[email protected]:27017/dbName", array("persist" => "pcName", "replicaSet"=>"myReplSet")); 

//Select a database 
$db = $connection->dbName; 

//Select a collection 
$collection = $db->testCollection; 

//Add a record 
$obj = array("FirstName" => "Brian", "LastName"=>"Renze", "Email"=>"[email protected]"); 
$collection->insert($obj); 
?> 

내가 오류를 받고 있어요 : 치명적인 오류 : 여기에 실행되는 코드의 '? 불량 또는 잘못된 명령 요청'메시지 catch되지 않은 예외 'MongoCursorException은'

아무 것도 데이터베이스에 기록되고 있지 '마스터를 판별 할 수 없습니다'라는 메시지와 다음 예외 'MongoCursorException'다음에,하지만 난 사용하고 무슨 코드를 잘못 모르겠어요. 그것은 php.net에 php-mongo 튜토리얼의 거의 정확한 사본입니다.

mongoDB 인스턴스는 데이터베이스 (이 경우 dbName)에 직접 연결할 때만 사용할 수 있으므로 "데이터베이스 선택"단계를 수행해야합니까?

replicaSet의 마스터 인스턴스는 어떻게 찾습니까? 자동으로 그렇게해서는 안됩니까?

제안 사항?

감사합니다, 브라이언 Renzenbrink

+0

은 $ 모음 = $ DB->을 TestCollection 세미콜론 누락되었습니다 http://www.mongodb.org/display/DOCS/Replication

현재 연결에 대한 자세한 내용을보실 수 있습니다 :

현재 복제에 대한 자세한 내용을보실 수 있습니다? – ranman

+0

게시 한 질문에 있지만 내 코드에는 포함되지 않았습니다. 그 문제를 해결하기 위해 편집했습니다. –

답변

0

난 당신이 하나의 설정을하지 않고도 복제 세트를 사용하려고 생각합니다.

당신이 replicaSet paramater를 제거하는 경우 : 작업을해야

$connection = new Mongo("mongodb://user:[email protected]:27017/dbName", array("persist" => "pcName")); 

.

mongo, php, mongo-php 버전 및 운영체제 버전을 포함 할 수 있습니까? http://www.php.net/manual/en/mongo.connecting.php

+0

그게 오류를 제거하지만 DB에 데이터를 성공적으로 삽입하지 못했습니다. 마스터 노드에 연결하면 'collectionCollection'이라는 새 컬렉션이 생성되지 않습니다. –

+0

몽고 버전 1.85, php 버전 5.3.6, 몽고 - php 버전 1.2.4 –

+0

지금 당신에게주는 오류는 무엇입니까? – ranman

관련 문제