2015-07-13 71 views
2

我有幾個問題,一個實施phpmongoDB用MongoDB的PHP函數問題

我的案子是我做這$_SESSION['mongoDb']變量中恢復mongoDB數據庫的功能,選擇一個集合,然後使用功能find($where, $fields)

我的錯誤是

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

我已經試過檢查MongoDB的PHP驅動程序等,但仍存在問題......

編輯:有關更多信息。

感謝Eternal1這篇文章,它有點令人困惑,因爲相同的代碼在生產服務器上工作,但不在我的localhost XAMPP服務器上工作。

for the one向誰的代碼我,你在這裏:

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由於其他DB連接的連接類型爲resource,因此無法序列化,因此無法正確存儲到會話中。 PHP會話手冊狀態:

某些類型的數據無法序列化,因此不會存儲在會話中。它 包括循環引用的資源變量或對象(即 對象,其傳遞到自身的引用到另一個對象)

PHP Sessions

+0

所以,我怎麼能保存蒙戈對象保存在session在另一個函數中工作的類似變量? – Makros

+0

我仍在努力。我怎樣才能保存新的Mongo(conectionstring),例如Session來在我的項目的另一部分工作? – Makros

+0

我會推薦使用某種「依賴注入」或「服務定位器」模式。 – Eternal1