我正在基於Codeigniter
的web項目,我需要從管理面板更新用戶。如果更新的值與數據庫中已存在的值不同,則它可以正常工作。問題是如果值不同,$this->db->affected_rows()
返回TRUE
,但如果值相同則返回FALSE。
這裏是我的代碼: -
// $where contains the array for where clause
// $data contains the array of user's data which includes the updated value
$this->db
->where($where)
->update('users', $data);
if($this->db->affected_rows() == true)
{
$response = array(
'message' => "User edited successfully",
'status' => true
);
}
else
{
// this else block always get executed if the updated value is equal to the value already exists in database. But in reality the record was updated successfully
$response = array(
'message' => "Unable to edit user",
'status' => false
);
}
return $response;
如何確定「更新查詢已成功執行」? – urfusion
會不會是這種情況?如果該值與數據庫中的值相同,則不會更新,因此您需要更改修改的時間以使其正常工作 – Exprator
@urfusion我在數據庫中有一個使用ON UPDATE CURRENT_TIMESTAMP的時間字段。所以,時間正在更新。 –