MongoCursorException'无法获取响应头'

时间:2011-07-29 19:31:25

标签: php mongodb mongodb-php

我正在使用PHP和mongodb开发一个网站。我用PECL-mongo访问mongodb,并且遇到了烦恼。我时不时地得到这样的错误(我已经对路径进行了匿名化)

Fatal error: Uncaught exception 'MongoCursorException' with message 'couldn't get response header' in
    /PATH/index.php:38 Stack trace: #0 
    /PATH/index.php(38): MongoCursor->rewind() #1 
    /PATH/template.inc(29): get_sidebar() #2 
    /PATH/index.php(13): 
    require_once('PATH/...') #3 {main} thrown in PATH/index.php on line 38

根据文档,这意味着:

  

驱动程序无法从数据库中获取回复标头,所以它   放弃。检查数据库是否仍处于运行状态且网络是否正常   已连接并再次尝试查询。

但我知道数据库已启动,因为我在我自己的机器上通过环回在本地执行此操作。没有与外界联系。

只需再次尝试即可。这可能是PHP的mongo驱动程序中的一个错误吗?这可能是一个“错误编译”的问题(我是从源代码编译的,但标志非常温和,-march=native -O2)?

有没有人见过这个?

搜索周围,我只看到一些愚蠢的Facebook游戏的引用有相同的错误。

编辑:我刚刚将我的PECL驱动程序降级到版本1.1.4并且到目前为止,问题似乎已经消失。所以这可能只是1.2.x系列中的一个错误。如果有人能说清楚它,那就太好了。

编辑:我这里没有做任何复杂的事情,有问题的代码看起来像这样:

$m = new Mongo();
$collection = $m->my_db->collection;
$results = $collection->find(array("favorite"=>true))->limit(5);

1 个答案:

答案 0 :(得分:1)

我通过获取新版本mogodb.dll解决了这个问题 你可以看到http://www.mongodb.org/display/DOCS/PHP+Language+Center