【问题标题】:Connect xampp to MongoDB将 xampp 连接到 MongoDB
【发布时间】:2011-01-27 00:12:11
【问题描述】:

我在同一台机器上运行了一个 xampp 1.7.3 实例和一个 MongoDB 1.2.4 服务器。

我想连接它们,所以我基本上一直在php.net上关注this tutorial,似乎连接但光标总是空的。我不知道我错过了什么。

这是我正在尝试的代码。 cursor->valid 总是说 false。谢谢

<?php
$m = new Mongo(); // connect
try {
  $m->connect();
} catch (MongoConnectionException $ex) {
  echo $ex;
}
echo "conecta...";
$dbs = $m->listDBs();
if ($dbs == NULL) {
  echo $m->lastError();
  return;
}
foreach($dbs as $db) {
  echo $db;
}

$db = $m->selectDB("CDO");
echo "elige bd...";
$col = $db->selectCollection("rep_consulta");
echo "elige col...";

$rangeQuery = array('id' => array( '$gt' => 100));
$col->insert(array('id' => 456745764, 'nombre' => 'cosa'));
$cursor = $col->find()->limit(10);
echo "buscando...";
var_dump($cursor);
var_dump($cursor->valid());
if ($cursor == NULL) echo 'cursor null';
while($cursor->hasNext()) {
    $item = $cursor->current();
    echo "en while...";
    echo $item["nombre"].'...';
}

?>

通过命令行执行此操作非常完美

use CDO
db.rep_consulta.find()
-- lot of data here

【问题讨论】:

    标签: php mongodb


    【解决方案1】:

    在迭代查询结果时,您并没有前进光标。运行上面的代码会导致无限循环,因为光标没有被推进。尝试改变:

    $item = $cursor->current();
    

    $item = $cursor->getNext();
    

    就个人而言,我更喜欢这种语法:

    foreach ($cursor as $item)
    {
        var_dump($item);
    }
    

    编辑

    以下代码对我来说工作正常。可以试试吗?

    $m = new Mongo();
    
    $db = $m->CDO;
    $col = $db->rep_consulta;
    
    $col->insert(array('id' => 456745764, 'nombre' => 'cosa'));
    
    $cursor = $col->find()->limit(10);
    
    foreach ($cursor as $item)
    {
        var_dump($item);
    }
    

    编辑++

    顺便说一句,$cursor->valid() 将不会返回 true,直到您将光标移动到结果的第一项。这就是为什么你会变得虚假。您尚未在代码中将光标移至该点。

    【讨论】:

    • 嗯,我之前试过...但是代码甚至没有进入 while 循环
    • 嗯。在那种情况下,我不确定发生了什么。我已经用代码 sn-p 编辑了我的答案,这对我来说很好。你可以尝试运行它吗?如果它对您不起作用,那么我们的环境肯定有所不同。
    • @Jhonny 你是什么意思?你在 Windows 上吗? var_dump($col->findOne()) 有效吗?
    • 不,Stephen 它不起作用...白页...我认为这是 php_mongo.dll 的问题,但不确定
    • 您的环境中似乎有问题,无论是您的驱动程序还是您的服务器。也许在详细模式下运行 Mongo 并检查输出。对于此类问题,您可能会在 Mongo Google 组groups.google.com/group/mongodb-user/topics 上获得更多乐趣
    猜你喜欢
    • 1970-01-01
    • 2023-03-22
    • 2019-05-10
    • 2021-04-18
    • 2019-02-27
    • 2014-12-03
    • 1970-01-01
    • 2018-03-30
    • 2017-04-17
    相关资源
    最近更新 更多