我试图通过_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);
答案 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)或不正确。