PHP'de MongoDB ile pecl sürücüsünü kullanarak çalışıyorum. Güncellemelerim harika çalışıyor, ancak işlevlerime bazı hatalar eklemek istiyorum.MongoDB güncellemesi: Bir güncellemenin başarılı olup olmadığını nasıl kontrol edersiniz?
Ben oldukça basit bir işlevde LastError() kullanarak denedim:
function system_db_update_object($query, $values, $database, $collection) {
$connection = new Mongo();
$collection = $connection->$database->$collection;
$connection->$database->resetError(); //Added for debugging
$collection->update(
$query,
array('$set' => $values));
//$errorArray = $connection->$database->lastError();
var_dump($connection->$database->lastError());exit; // Var dump and /Exit/
}
Ama hemen hemen bakılmaksızın ben bu aynı temel sonuçları elde (varolduğundan olsun veya olmasın) güncelleştirmeye çalıştığınızda ne:
array(4) {
["err"]=>
NULL
["updatedExisting"]=>
bool(true)
["n"]=>
float(1)
["ok"]=>
float(1)
}
Güncelleştirmenin başarılı olup olmadığını nasıl anlarım?
Bu tam olarak ne demek istemedim. Yukarıdaki kod, anahtar var olup olmadığına bakılmaksızın $ değerleri dizisine koyduğumdan bağımsız olarak veritabanını güncelleyecektir (eğer bu değer sadece belge/değer çiftini belgeye eklemiyorsa). php.net belgelerini yeniden okuyorum "güvenli" seçeneğiyle yeniden karşılaştım ve şimdi yukarıdaki koda ekledim, böylece şunun gibi görünüyor: $ collection-> update ($ query, array ('$ set' =) > $ değerler), dizi ("güvenli" => doğru)); Ancak, kasıtlı olarak bir çöp güncelleştirmesi yaptığımda hala aynı sonuçları (NULL, true, 1, 1) alıyorum. – zmg