PHP Mongodb删除停止进程没有错误

时间:2014-11-17 09:12:21

标签: php mongodb

我试图通过_id删除文档,但是PHP进程在没有错误的情况下停止,并且access.log没有错误,如果我将变量赋给{,则没有输出{1}}。使用mongodb: remove()

version v2.4.9
编辑:我试过这个,没有输出:

    $connection = new MongoClient();
    if($connection == NULL) {
        return "some msg";
    }
    $db = $connection->main;
    $collection = $db->users;
    $document = $collection->findOne(array('email' => $user->email));
    if($document == NULL) {
        // do some stuff, works fine.
    } else {
        $id = $document["_id"];
        echo "id=".$id                            // outputs: 5469a22600a8ebe8418b4567
        if($document["confirm"] != "true") {
            echo "confirmed not true"             // outputs fine
            $collection->remove(array('_id' => new MongoId($id)), true);
            echo "hello!";                        // never occurs
        }
    }
编辑:我找到了答案,但我不理解答案,因为我见过的每个例子都包含 try { $collection->remove(array('_id' => new MongoId($id)), true); } catch(Exception $e) { echo $e->getMessage(); } 个参数。所以我不会自己回答这个问题并将其交给专家。

这不起作用:

true

这不起作用:

$collection->remove(array('_id' => new MongoId($id)), true);

这有效:

$collection->remove(array('_id' => new MongoId($id)), false);

1 个答案:

答案 0 :(得分:0)

我可以解释你的问题,但我无法解释为什么你没有看到错误,你的PHP设置一定有些奇怪。

无论如何,为什么第二个参数的boolean唯一值不起作用:这是因为PHP驱动程序需要一个数组:http://php.net/manual/en/mongocollection.remove.php你所使用的例子要么太老了(自从变化发生在1.0.5 http://php.net/manual/en/mongocollection.remove.php#refsect1-mongocollection.remove-changelog)或不正确。