PHP에서 pecl 드라이버를 사용하여 MongoDB와 협력하고 있습니다. 내 업데이트는 훌륭하게 작동하지만 일부 기능을 확인하기 위해 오류를 작성하고 싶습니다.MongoDB 업데이트 : 업데이트가 성공했는지 실패했는지 확인하는 방법은 무엇입니까?
나는 아주 간단한 기능에 lastError()를 사용하여 시도했다 :
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/
}
그러나 거의 상관없이 내가이 같은 기본 결과를 얻을 수 (존재 여부) 업데이트하려고 무엇을 :
array(4) {
["err"]=>
NULL
["updatedExisting"]=>
bool(true)
["n"]=>
float(1)
["ok"]=>
float(1)
}
업데이트가 성공했는지 또는 실패했는지 어떻게 알 수 있습니까?
그건 내가 의미하는 바가 아닙니다. 위의 코드는 키가 있는지 여부에 상관없이 $ values 배열에 넣은 것에 관계없이 데이터베이스를 업데이트합니다 (단순히 값/키 쌍을 문서에 추가하지 않으면). php.net 설명서 다시 읽기 "안전한"옵션을 찾아 위의 코드에 추가하여 다음과 같이 표시했습니다. $ collection-> update ($ query, array ('$ set'= > $ values), array ("safe"=> true)); 하지만 의도적으로 가비지 업데이트를 수행 할 때마다 여전히 동일한 결과 (NULL, true, 1, 1)가 표시됩니다. – zmg