diff options
author | Evan Prodromou <evan@controlezvous.ca> | 2008-06-22 10:56:44 -0400 |
---|---|---|
committer | Evan Prodromou <evan@controlezvous.ca> | 2008-06-22 10:56:44 -0400 |
commit | 73921da0f34dafd0ba5cc31b298307360f7d18c9 (patch) | |
tree | 4d8b6cb2862ad7233a8d6d0c509b875d8222e1ec /classes | |
parent | 1fcdecbd2b527ad63a322ee87fa5f83b508307b9 (diff) |
add a method to update key fields in User
darcs-hash:20080622145644-34904-92549d9bb68251214c4dc370f6e2a56f516ceecb.gz
Diffstat (limited to 'classes')
-rw-r--r-- | classes/User.php | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/classes/User.php b/classes/User.php index d750c7847..e8281a723 100644 --- a/classes/User.php +++ b/classes/User.php @@ -61,4 +61,23 @@ class User extends DB_DataObject $sub->subscribed = $other->id; return $sub->find(); } + + # 'update' won't write key columns, so we have to do it ourselves. + + function updateKeys(&$orig) { + $parts = array(); + foreach (array('nickname', 'email') as $k) { + if ($this->$k != $orig->$k) { + $parts[] = $k . '="' . $this->$k . '"'; + } + } + if (count($parts) == 0) { + # No changes + return; + } + $toupdate = implode(', ', $parts); + $qry = 'UPDATE ' . $this->tableName() . ' SET ' . $toupdate . + ' WHERE id = ' . $this->id; + return $this->query($qry); + } } |