我正在使用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);
答案 0 :(得分:1)
我通过获取新版本mogodb.dll解决了这个问题 你可以看到http://www.mongodb.org/display/DOCS/PHP+Language+Center