PHP + MongoHQ: MongoCursorException - PullRequest
       5

PHP + MongoHQ: MongoCursorException

1 голос
/ 16 июня 2010

Я пытаюсь использовать mongodb с PHP.Для этого я создал экземпляр MongoHQ, но по некоторым причинам, когда я пытаюсь вставить что-то или любую другую операцию с моего php-сервера, я получаю следующую ошибку:

Fatal error: Uncaught exception 'MongoCursorException' with message 'unauthorized for db [datab] lock type: -1 ' in C:\Program Files\EasyPHP5.3.0\www\application\controllers\Stat.ctrl.php:56 
Stack trace: 
  #0 C:\Program Files\EasyPHP5.3.0\www\application\controllers\Stat.ctrl.php(56): MongoCursor->rewind() 
  #1 C:\Program Files\EasyPHP5.3.0\www\index.php(105): Stat->index() 
  #2 {main} thrown in C:\Program Files\EasyPHP5.3.0\www\application\controllers\Stat.ctrl.php on line 56

Кто-нибудь знает, где это может бытьисходящий из?

Это код php, который я использую:

<code>$username = 'test';
$password = 'test';

try
{
$link = new Mongo( "flame.mongohq.com:27022/datab -u <".$username."> -p <".$password.">" );

//MongoDB::authenticate ( $username , $password )
//$link = new Mongo();
}
catch(MongoConnectionException $e)
{
die('Could not connect. Check to make sure MongoDB is running.');
}
$db = $link->datab;
$col = $db->order;

try
{
// Insert a document (row) into the collection (table)
$doc = array('login' => 'jsmith', 'password' => ' 5f4dcc3b5aa765', 'email' => 'jsmith@example.com');
$col->insert($doc, true);

$doc = array('login' => 'psmith', 'password' => ' 5f4dcc3b', 'email' => 'psmith@example.com');
$col->insert($doc, true);
}
catch(MongoCursorException $e)
{
echo 'Je suis la!';
}

// Get the id of last insert
$id = $doc['_id'];

// Get all documents
$res = $col->find();

echo 'All documents:<br/>';

foreach($res as $doc)
{
echo '<pre>';
print_r($doc);
echo '
';} // Запрос документа, соответствующего последнему идентификатору вставки $ doc = $ col-> findone (array ('_ id' => $ id));echo 'Отдельный документ (_id = $ id):
';
print_r($doc);

// Update a document
$col->update(array('_id' => $id), array('$set' => array('password' => 'b497dd1a701a33033620780d')));

// Query the updated docuemnt
$doc = $col->findone(array('_id' => $id));

echo 'Updated docuement:<br/><pre>';
print_r($doc);
echo '
';

1 Ответ

2 голосов
/ 17 июня 2010

Это не тот формат подключения, который использует MongoDB.См. http://www.php.net/manual/en/mongo.construct.php.

Возможно, вам нужно изменить его на что-то вроде:

$m = new Mongo("mongodb://$username:$password@flame.mongohq.com:27022/datab");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...