Estoy trabajando con MongoDB en PHP usando el controlador pecl. Mis actualizaciones funcionan muy bien, pero me gustaría crear algunas comprobaciones de errores en mis funciones.Actualización de MongoDB: ¿cómo verificar si una actualización tiene éxito o falla?
He intentado usar LastError() en una función bastante simple:
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/
}
Pero más o menos independientemente de lo que trato de actualizar (si existe o no) consigo estos mismos resultados básicos:
array(4) {
["err"]=>
NULL
["updatedExisting"]=>
bool(true)
["n"]=>
float(1)
["ok"]=>
float(1)
}
¿Cómo sé si la actualización se realizó correctamente o no?
Eso no es lo que quería decir. El código anterior actualizará alegremente la base de datos independientemente de lo que coloque en la matriz $ values, independientemente de si la clave existe o no (si no lo hace, simplemente agregue el valor/par de claves al documento). Volviendo a leer la documentación de php.net encontré la opción "segura" y la agregué al código anterior, por lo que ahora se ve así: $ collection-> update ($ query, array ('$ set' = > $ values), array ("safe" => true)); Pero sigo obteniendo los mismos resultados (NULO, cierto, 1, 1) cada vez que realizo intencionadamente una actualización de basura. – zmg