在MongoDb 2.0.6上,运行64位,带有官方驱动程序的PHP 5.4。
的MongoDb save()®
存储为
®
Mongo显然是在宣传所有&进入&放大器;从而在再次输出到浏览器时打破html实体!存储“Bose®”工作正常,存储为“Bose®”。这里发生了什么?我希望MongoDb停止改变我的数据。我有意识地存储像
这样的HTML实体®
避免此类问题,但MongoDb将其变为
&®
在save()上通过PHP?这是一个错误还是一个“功能”?
目前,我必须在保存()之前将所有字符串/数据执行html_entity_decode()到MongoDb ...
答案 0 :(得分:1)
MongoDB NOT 以这种方式重置数据。您的应用程序中还有其他内容正在修改数据。
这是一个简单的测试程序:
<?php
$conn = new Mongo();
$db = $conn->test;
$collection = $db->tb;
$collection->drop();
$collection->save( array( 'name' => ">>®<<" ) ) ;
$cursor = $collection->find();
foreach ($cursor as $doc)
print(" {$doc['name']} \n");
?>
运行时,会产生以下输出:
>>®<<
显然,工具链中的其他内容正在执行HTML编码。