PHP+;MongoHQ:MongoCursorException
我正在尝试将mongodb与PHP结合使用。 为此,我创建了一个MongoHQ实例,但由于某些原因,当我尝试从我的php服务器插入某些内容或任何其他操作时,我得到以下错误:PHP+;MongoHQ:MongoCursorException,php,mongodb,Php,Mongodb,我正在尝试将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\c
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代码:
$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 '</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>';
$username='test';
$password='test';
尝试
{
$link=newmongo(“flame.mongohq.com:27022/datab-u-p”);
//MongoDB::身份验证($username,$password)
//$link=newmongo();
}
捕获(MongoConnectionException$e)
{
die('无法连接。请检查以确保MongoDB正在运行');
}
$db=$link->datab;
$col=$db->order;
尝试
{
//将文档(行)插入集合(表)
$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);
}
捕获量(MongoCursorException$e)
{
呼应‘我是你!’;
}
//获取上次插入的id
$id=$doc[''u id'];
//获取所有文档
$res=$col->find();
回显“所有文档:
”;
foreach($res作为$doc)
{
回声';
打印(doc);
回声';
}
//查询与上次插入ID匹配的文档
$doc=$col->findone(数组(''u id'=>$id));
echo“单个文档(_id=$id):
”;
打印(doc);
//更新文档
$col->update(数组('u id'=>$id),数组('$set'=>array('password'=>'b497dd1a701a33033620780d'));
//查询更新的文档
$doc=$col->findone(数组(''u id'=>$id));
echo“更新文档:
”;
打印(doc);
回声';
这不是MongoDB使用的连接格式。看
您可能需要将其更改为:
你能告诉我们你是如何连接到MongoHQ的吗?您可能没有尝试进行身份验证,或者提供了错误的凭据。好的,我已经更新了问题
$m = new Mongo("mongodb://$username:$password@flame.mongohq.com:27022/datab");