2010-09-20 20 views
8

biegnę ten kod:php MongoDB: Call to metoda niezdefiniowany MongoDB :: wkładki() w Db.php

$db = new Mongo("mongodb://user:[email protected]:27081/dbname"); 
    $collection = $db->foobar; 

    $collection->insert($content); 

Próbuję przetestować mongohq tylko o tworzeniu losowy zbiór.

Dostaję taki błąd:

Fatal error: Call to undefined method MongoDB::insert() in /ajax/db.php on line 24 

mam zainstalowanego klienta o ile wiem:

alt text

Jestem również uruchomiony PHP 5.2.6

W czym problem? Dzięki.

Odpowiedz

12

Każdy DB zawiera jedną lub wiele kolekcji. Próbujesz wstawić do DB zamiast kolekcji.

Nie użyłem tego rozszerzenia, ale ta metoda nie istnieje w klasie MongoDB zgodnie z dokumentacją. Zamiast tego jest to MongoCollection::insert. Można dostać w kolekcji przez: (. Komentowanym linia jest odpowiednikiem linii poniżej niej)

// $collection = $mongo->selectDB("foo")->selectCollection("bar"); 
$collection = $mongo->foo->bar; 
$collection->insert(array('x' => 1)); 

Zgaduję, że robisz coś takiego:

$collection = $mongo->foo; 
$collection->insert(array('x' => 1)); 

(Edycja: nie widzę fragmentu kodu po raz pierwszy. Dokładnie to robisz.)

Proponuję przeczytać tutorial, aby uzyskać więcej informacji.

+1

Czy na końcu nowego Mongo nie ma nazwy db? Więc nie musiałbym wybierać tego dwa razy? – JSNewbie

+0

Nie wstawiasz do bazy danych. Wstawiasz do kolekcji. Instancja '$ mongo' to po prostu połączenie z serwerem mongo. Pierwsza właściwość to nazwa bazy danych. Druga to nazwa kolekcji. – Matthew

Powiązane problemy