php查询mongodb与&符号(&)

时间:2014-01-10 02:25:55

标签: php mongodb

我在mongodb中有一个数据名称为“&”在里面。像“床和早餐”之类的东西。 当我更新它的名字时,它仍然只是数据库中的“床”。 我觉得我可以直接在mongo shell中修改。但事实证明,来自php的查询查询也不起作用。我确定我在mongodb有一个名为“Bed& Breakfast”的数据,我可以在mongodb中找到这些数据,但不能从php中找到。没有“&”的所有其他数据工作得很好。 我该如何解决这个问题?

$connection = new Mongo( "localhost:27017" );

$db = $connection->selectDB("database");
$collection = $db->selectCollection("room");

if(isset($_GET['name'])){
    $name = $_GET['name'];
}
$filter = array('name' => $name);
$cursor = $collection->find($filter);
if($cursor->hasNext()){
        foreach($cursor as $data){
                echo $data;
        }
}else{
        echo 'null';
}

1 个答案:

答案 0 :(得分:1)

这是因为你从PHP“GET”中取名。

当收到GET参数时,PHP会根据“&”拆分它们。因此,时间:

$ name = $ _GET ['name']

此行已处理,$ name设为“Bed”而非“Bed& Breakfast”。

要解决此问题,请使用post发送参数,如果可能,

否则,将URL编码应用于传递给GET字符串的参数。

urlencode的参考 -

http://in3.php.net/urlencode