Làm cách nào để biết khi nào một CẬP NHẬT MySQL đã thành công so với dữ liệu cập nhật thực sự?Làm cách nào để biết khi nào một CẬP NHẬT MySQL đã thành công so với dữ liệu cập nhật thực sự?
Ví dụ:
TABLE
id city_name
1 Union
2 Marthasville
Nếu tôi chạy như sau:
$data = array('city_name', 'Marthasville');
//update record 2 from Marthasville to the same thing, Marthasville.
$this->db->where('id', 2);
$this->db->update('table', $data);
if($this->db->affected_rows() > 0)
{
//I need it to return TRUE when the MySQL was successful even if nothing was actually updated.
return TRUE;
}else{
return FALSE;
}
này sẽ trở lại TRUE
mỗi khi câu lệnh UPDATE là thành công, nhưng FALSE khi không có hàng đã thực sự được cập nhật.
Tôi cần nó để trả về TRUE
mỗi khi câu lệnh UPDATE được thực hiện thành công ngay cả khi nó không thực sự thay đổi bất kỳ bản ghi nào.
tôi chỉ cập nhật câu hỏi của tôi một lần nữa để rõ ràng hơn nêu vấn đề tôi đang gặp khó với việc sử dụng mysql_affected_rows(). Ước gì tôi sẽ không đăng câu hỏi của tôi sớm như vậy: S – zechdc
Tôi tin rằng câu trả lời của JLeafgle vẫn đúng. mysql_affected_rows sẽ trả về -1 nếu truy vấn cuối cùng thất bại, nếu không sẽ trả về> = 0. Giả sử đó là những gì bạn đang làm sau đó, sau đó chỉ cần thay đổi câu lệnh if của bạn thành ... "if ($ this-> db-> affected_rows()> = 0) " –
Bạn đúng @Jon Stirling. Tôi đã cập nhật câu trả lời của Jleagle để phản ánh đề xuất của bạn, tuy nhiên tôi không thể phê duyệt bản chỉnh sửa để nếu người khác có thể, điều đó sẽ tuyệt vời. Cảm ơn! – zechdc