通过PHP的MongoDB update$set查询可能有什么问题?

通过PHP的MongoDB update$set查询可能有什么问题?,php,mongodb,Php,Mongodb,我有点被收藏的更新所困扰 因此,我有一个疑问: $coll->update( array("_id" => new MongoId($_POST["id"])), array("$set" => array( "contentType" => htmlspecialchars(strip_tags(trim($_POST["type"]))), "content

我有点被收藏的更新所困扰

因此,我有一个疑问:

$coll->update(
            array("_id" => new MongoId($_POST["id"])),
            array("$set" => array(
                "contentType" => htmlspecialchars(strip_tags(trim($_POST["type"]))),
                "contentTitle" => htmlspecialchars(strip_tags(trim($_POST["title"]))),
                "contentBody" => htmlspecialchars(strip_tags(trim($_POST["content"])))
            )),
            true,
            false
        );
请不要为验证$_帖子的方式而烦恼,这只是一个测试,但不起作用。收藏没问题,我已经检查过了。它什么都不做,当我插入
var_dump($db->lastError())

它没有给我任何错误。

检查您的apache日志,可能会有所帮助。基于第三个参数的是一个数组。你可能想坚持这一点。

好的,我现在有了解决方案

$r = $coll->findOne(
            array(
                "_id" => new MongoId($_POST["id"])
            )
        );
        //
        $r["contentType"] = htmlspecialchars(strip_tags(trim($_POST["type"])));
        $r["contentTitle"] = htmlspecialchars(strip_tags(trim($_POST["title"])));
        $r["contentBody"] = htmlspecialchars(strip_tags(trim($_POST["content"])));
        //
        $coll->save($r);
所以这个很好用。但是我很想知道之前的事情=P
如果有人知道它为什么不起作用,请随时回答!=]

不,这台机器上没有apache。。。这是一个仅用于MongoDB的VM。。。Web服务器位于不同的VM上。。。只是这个更新还不起作用。我甚至检查了var/log/mongo/mongod.log,没有什么异常。。。当我在更新结束时给出一个数组(“upsert”=>true)而不是true和false参数时,整个脚本就会退出……您是否检查了使用的mongodb和pecl扩展的版本?这可能有点问题。您还可以将错误处理设置为
E_ALL
检查您的php扩展版本和mongodb服务器版本是否相互兼容我已在周五创建了此虚拟机和“yum install pecl”因此,我认为这不会解决问题…使用MongoDB的控制台,您是否尝试过在给定
$\u POST['id']
值的情况下查找文档?您是否将查询设置为在安全模式下运行?如果为FALSE(默认值),程序将继续执行,而不等待数据库响应。如果为TRUE,则程序将等待数据库响应,如果更新未成功,则抛出MongoCursorException。这可能就是为什么上一个错误没有返回任何内容。问题是我没有得到任何期望…这是什么?->周一2月6日17:06:49偏移量127处格式错误的UTF-8字符序列如果未启用安全模式,则不会返回任何异常。好的,我尝试了其他更新方式,请检查它。=)你是说我应该试试这个$coll->update(数组($u-id)=>new-MongoId($u-POST[“id”])、数组($set”=>array(“contentType”=>htmlspecialchars(strip-u标签(trim($u-POST[“type”]))、“contentTitle”=>htmlspecialchars(strip-u标签(trim($u-POST[“title”]))))、“contentBody”=>htmlspecialchars(strip-u标签(trim($u-POST[“content”])))))、数组(“upsert”=>false)、数组(“fsync”)=>true),数组(“安全”=>true));数组(“upsert”=>false,“fsync”=>true,“safe”=>true)更适合我认为的最后一个参数