2015-07-13 2 views
2

У меня несколько проблем с реализацией в php для работы с mongoDBПроблем с функциями PHP MongoDB

Моей случае является то, что я сделал функцию, восстановить базу данных mongoDB в $_SESSION['mongoDb'] переменном, выбирает коллекцию, а затем использовать функция find($where, $fields).

Моей ошибка

Fatal error: Call to a member function find() on a non-object in... 

Я попытался проверить MongoDB драйвер PHP и другие, но проблема все еще существующую ...

EDIT: Более подробная информация о.

Спасибо за сообщение Eternal1, это немного запутанно, потому что тот же код работает на производственном сервере, но не на моем локальном сервере XAMPP.

Для того, кто попросит у меня код, вот вы:

public function generic_select_mongo ($collection, $fields, $where, $order, $limit) 
    { 
    $mongoBd = $_SESSION['mongoBd']; 
    $col = $mongoBd->$collection; 

    $res = $col->find($where, $fields); 
    $res->sort($order); 
    $result = array(); 

    while ($docs = $res->getNext()) 
     { 
     $result[] = $docs; 
     } 

    return $result; 
    } 

Я собираюсь исследовать о сессии в PHP. Извините за ответ с дополнительной информацией.

+3

показать нам код – planetmaker

ответ

0

MongoDB соединение, как и другие соединения БД, имеет тип resource, который не может быть сериализован и поэтому надлежащим образом хранится в сеансе. В руководстве по сеансу PHP указано:

Некоторые типы данных не могут быть сериализованы таким образом, чтобы храниться в сеансах. Он включает в себя переменные ресурсах или объекты с циклическими ссылками (т.е. объектов, которые передают ссылку на себя в другой объект)

PHP Sessions

+0

Итак, как я могу сохранить Монго объект в сессии переменная схожей для работы с другой функцией? – Makros

+0

Я все еще работаю над этим. Как я могу сохранить новый Mongo (conectionstring), например Session для работы в другой части моего проекта? – Makros

+0

Я бы порекомендовал использовать какие-то шаблоны 'Dependency Injection' или' Service Locator'. – Eternal1

Смежные вопросы