CodeIgniter Forums
affected_rows results to 0 if Active Record update data is the same - Printable Version

+- CodeIgniter Forums (https://forum.codeigniter.com)
+-- Forum: Archived Discussions (https://forum.codeigniter.com/forum-20.html)
+--- Forum: Archived Development & Programming (https://forum.codeigniter.com/forum-23.html)
+--- Thread: affected_rows results to 0 if Active Record update data is the same (/thread-32822.html)



affected_rows results to 0 if Active Record update data is the same - El Forum - 08-05-2010

[eluser]rvillalon[/eluser]
I understand that the affected_rows returns 0 if the data being updated is the same. Is there an alternative to affected_rows to tell me that it still found the row even though it didn't update it because it was the same data?

Code:
/**
     * Updates entire user settings
     *
     * @param    int
     * @param    array
     * @return    object
     */
    function update_user_by_id($id, $data)
    {
        $this->db->where('user_id', $id);
        $this->db->update($this->user_profile_table_name, $data);
        
        if ($this->db->affected_rows() > 0) return TRUE;
        return FALSE;
    }



affected_rows results to 0 if Active Record update data is the same - El Forum - 08-05-2010

[eluser]rvillalon[/eluser]
I just found the following code on codeigniter that might solve my problem:

$this->db->set('column', 'value');
$result = $this->db->update('table');
if (!$result)
{
// there was an error
}
else if (!$this->db->affected_rows())
{
// no error, but nothing changed
}
else
{
// record changed
}