Tôi đang làm việc với MongoDB bằng PHP bằng trình điều khiển pecl. Bản cập nhật của tôi đang hoạt động tốt, nhưng tôi muốn xây dựng một số lỗi khi kiểm tra (các) hàm của tôi.Cập nhật MongoDB: cách kiểm tra xem bản cập nhật có thành công hay không thành công không?
Tôi đã cố gắng sử dụng lastError() trong một chức năng khá đơn giản:
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/
}
Nhưng khá nhiều bất kể những gì tôi cố gắng cập nhật (cho dù nó tồn tại hay không) tôi nhận được những kết quả cơ bản giống nhau:
array(4) {
["err"]=>
NULL
["updatedExisting"]=>
bool(true)
["n"]=>
float(1)
["ok"]=>
float(1)
}
Làm cách nào để biết cập nhật thành công hay thất bại?
Đó không hoàn toàn là ý của tôi. Đoạn mã trên sẽ hân hoan cập nhật cơ sở dữ liệu bất kể những gì tôi đưa vào mảng $ values, cho dù khóa tồn tại hay không (nếu nó không đơn giản thêm cặp giá trị/khóa vào tài liệu). Đọc lại tài liệu php.net Tôi đã xem qua tùy chọn "an toàn" và thêm nó vào mã ở trên để bây giờ trông như sau: $ collection-> update ($ query, array ('$ set' = > $ values), mảng ("safe" => true)); Nhưng tôi vẫn nhận được kết quả tương tự (NULL, true, 1, 1) mỗi lần tôi cố ý thực hiện cập nhật rác. – zmg