/** * Saves a user detail * @param Default_Model_UserDetail $userDetail User detail to be saved */ public function save(Default_Model_UserDetail $userDetail) { // check if key exists $select = $this->getDbTable()->select()->where('user_id = ?', $userDetail->getId())->where('key = ?', $userDetail->getKey()); $row = $this->getDbTable()->fetchRow($select); if (is_null($row)) { // key doesn't exist, insert new key $data = array('user_id' => $userDetail->getId(), 'key' => $userDetail->getKey(), 'value' => $userDetail->getValue()); $this->getDbTable()->insert($data); } else { // key exists, update key $data = array('value' => $userDetail->getValue()); $where[] = $this->getDbTable()->getAdapter()->quoteInto('user_id = ?', $userDetail->getId()); $where[] = $this->getDbTable()->getAdapter()->quoteInto('key = ?', $userDetail->getKey()); $this->getDbTable()->update($data, $where); } }