2010-06-16 5 views
1

J'essaie d'utiliser mongodb avec PHP. Pour cela, j'ai créé une instance MongoHQ, mais pour certaines raisons lorsque je tente d'insérer quelque chose ou toute autre opération de mon serveur php je reçois l'erreur suivante:PHP + MongoHQ: MongoCursorException

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 

Est-ce que quelqu'un sait où on peut venir de?

Ce code php J'utilise:

$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' => '[email protected]'); 
$col->insert($doc, true); 

$doc = array('login' => 'psmith', 'password' => ' 5f4dcc3b', 'email' => '[email protected]'); 
$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 '</pre>'; 
} 

// Query for the document matching the last insert ID 
$doc = $col->findone(array('_id' => $id)); 

echo 'Single document (_id = $id):<br/><pre>'; 
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 '</pre>'; 
+0

Pouvez-vous nous montrer comment vous vous connectez à MongoHQ? Il semble que vous n'essayez pas de vous authentifier ou que vous fournissiez les informations d'identification incorrectes. – salathe

+0

Ok, j'ai mis à jour la question – Roch

Répondre