通过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)更适合我认为的最后一个参数