2010-09-20 13 views
8

tanımsız yöntem MongoDB :: insert() çağır:php mongodb: Bu kodu koşuyorum db.php

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

    $collection->insert($content); 

Sadece rastgele bir koleksiyonunu oluşturarak mongohq sınamak çalışıyorum.

bu hatayı alıyorum:

alt text

Ben de php 5.2.6

çalıştırıyorum:

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

İstemci olarak bildiğim kadarıyla yüklü

Sorun nedir? Teşekkürler.

cevap

12

Her DB bir veya daha fazla koleksiyon içeriyor. Toplama yerine DB'ye eklemeye çalışıyorsunuz.

Bu uzantıyı kullanmadım, ancak bu yöntem belgelere göre MongoDB sınıfında mevcut değil. Bunun yerine, MongoCollection::insert. Sen bir koleksiyon olsun: (. Yorumladı çizgi altındaki satıra eşdeğerdir)

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

ben gibi bir şey yaptığını tahmin ediyorum:

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

(Düzenleme: Kod snippet'inizi ilk kez görmedim. Bu tam olarak ne yapıyorsunuz.)

Daha fazla bilgi için tutorial'u okumanızı öneririm.

+1

Yeni Mongo'nun sonundaki dbname db değil mi? Yani iki kere seçmem gerekmiyor mu? – JSNewbie

+0

Bir db'ye eklemiyorsunuz. Bir koleksiyona eklersiniz. '$ Mongo' örneği sadece bir mongo sunucusuna bağlantıdır. İlk özellik veritabanının adıdır. İkincisi koleksiyonun adıdır. – Matthew