/** * Set the Maestrano UID on a local user via id lookup * * @return a user ID if found, null otherwise */ protected function setLocalUid() { if ($this->local_id) { $upd = $this->connection->update($this->connection->users, array('mno_uid' => $this->uid), array('ID' => $this->local_id)); return $upd; } return false; }
/** * 保存数据 * @access public * @param mixed $data 数据 * @param array $options 表达式 * @return boolean */ public function save($data = '', $options = array()) { if (empty($data)) { // 没有传递数据,获取当前数据对象的值 if (!empty($this->data)) { $data = $this->data; // 重置数据 $this->data = array(); } else { $this->error = L('_DATA_TYPE_INVALID_'); return false; } } // 数据处理 $data = $this->_facade($data); if (empty($data)) { // 没有数据则不执行 $this->error = L('_DATA_TYPE_INVALID_'); return false; } // 分析表达式 $options = $this->_parseOptions($options); $pk = $this->getPk(); if (!isset($options['where'])) { // 如果存在主键数据 则自动作为更新条件 if (is_string($pk) && isset($data[$pk])) { $where[$pk] = $data[$pk]; unset($data[$pk]); } elseif (is_array($pk)) { // 增加复合主键支持 foreach ($pk as $field) { if (isset($data[$field])) { $where[$field] = $data[$field]; } else { // 如果缺少复合主键数据则不执行 $this->error = L('_OPERATION_WRONG_'); return false; } unset($data[$field]); } } if (!isset($where)) { // 如果没有任何更新条件则不执行 $this->error = L('_OPERATION_WRONG_'); return false; } else { $options['where'] = $where; } } if (is_array($options['where']) && isset($options['where'][$pk])) { $pkValue = $options['where'][$pk]; } if (false === $this->_before_update($data, $options)) { return false; } $result = $this->db->update($data, $options); if (false !== $result && is_numeric($result)) { if (isset($pkValue)) { $data[$pk] = $pkValue; } $this->_after_update($data, $options); } return $result; }