public function write($uid, $action_type, $action_detail, $other_info = null) { $insert_data = array('uid' => $uid, 'action_type' => $action_type, 'action_detail' => $action_detail); if (!empty($other_info)) { $insert_data = array_merge($insert_data, $other_info); } $id = $this->dbo->inserttable($this->table_name, $insert_data, true); return $id; }
public function deleteTester($uid) { if (empty($uid)) { return false; } $sql = "delete from %s where uid in (%s)"; $sql = sprintf($sql, $this->table_name, $uid); return $this->dbhelper->execute($sql); }
/** * 进行用户验证 * @param array $credentials * @param array $options * @return array */ public function onAuthenticate($credentials, $options = null) { return "test1"; $response = new AuthenticationResponse(); if (empty($credentials['password'])) { $response->status = ELEX_AUTHENTICATE_STATUS_FAILURE; $response->error_message = 'Empty password not allowed'; return $response; } $sql = "select * from admin_users where username = '******'"; $username = $credentials['username']; // $result = $this->dbo->getOne($sql,$username); $result["password"] = "******"; if (empty($result)) { $response->status = ELEX_AUTHENTICATE_STATUS_FAILURE; $response->error_message = 'User does not exist'; return $response; } else { $cryptmethod = 'sha1'; if (isset($options['crypt_method'])) { if (is_callable($options['crypt_method'])) { $cryptmethod = $options['crypt_method']; } } // if($options['salt'] === false){ // $encrypass = $cryptmethod($credentials['password']); // } // else{ // $encrypass = $cryptmethod($cryptmethod($credentials['password']) . $result['salt']); // } if ($result['password'] != $encrypass) { $response->status = ELEX_AUTHENTICATE_STATUS_FAILURE; $response->error_message = 'Invalid password'; return $response; } if ($result['expire_time'] > 0 && $result['expire_time'] < time()) { $response->status = ELEX_AUTHENTICATE_STATUS_FAILURE; $response->error_message = 'Account expired'; return $response; } $response->status = ELEX_AUTHENTICATE_STATUS_SUCCESS; $response->error_code = 0; $response->error_message = ''; $response->uid = $result['adminuid']; $response->email = $result['email']; $response->group_id = $result['group_id']; $response->username = $result['username']; if ($result['expire_time']) { $response->expire_time = date('Y-m-d H:i:s', $result['expire_time']); } if ($result['last_login_time']) { $response->last_login_time = date('Y-m-d H:i:s', $result['last_login_time']); } $this->dbo->updatetable('admin_users', array('last_login_time' => time()), array('adminuid' => $result['adminuid'])); return $response; } }
/** * * @return int */ private function initSeq() { $key = $this->getMemKey(); $seq = $this->cache->get($key); if ($seq === FALSE) { $sql = sprintf("select LAST_INSERT_ID() from %s", $this->table_name); $value = $this->dbhelper->resultFirst($sql); if (!empty($value)) { $seq = $value['gameuid']; } } if ($seq != FALSE && $seq >= 1) { $user_mgr = new UserAccountManager(); $account = $user_mgr->getUserAccount($seq); $nexAccount = $user_mgr->getUserAccount($seq); } if (empty($account) || !empty($nexAccount)) { $sql = sprintf("select ifnull(max(%s),0) max_value from %s", "gameuid", $this->table_name); $res = $this->dbhelper->getOne($sql); $seq = $res['max_value']; } return $seq; }
/** * 获取其他的where条件 * @return string */ protected function getWhereExp() { $sql = ''; // 组合所有的key if (!empty($this->keys)) { foreach ($this->keys as $field => $val) { $fields = explode(",", $field); if (count($fields) > 1) { if (count($val) > 0) { //针对WHERE (pk1=v1 AND pk2=v2) OR (pk1=v3 AND pk2=v4) OR (pk1=v5 AND pk2=v6) //调用方法addKeyValue("pk1,pk2", array(array(v1,v2),array(v3,v4),array(v5,v6))); $or_clauses = ''; foreach ($val as $v) { $or_value = array_combine($fields, $v); if ($or_value === false) { continue; } $and_clause = ''; foreach ($or_value as $or_value_k => $or_value_v) { $or_value_v = $this->prepareForSql($or_value_k, $or_value_v); if (isset($and_clause[0])) { $and_clause .= " AND "; } $and_clause .= "{$or_value_k}={$or_value_v}"; } if (isset($or_clauses[0])) { $or_clauses .= " OR "; } $or_clauses .= "({$and_clause})"; } if (isset($or_clauses[0])) { if (count($val) > 1) { $sql .= " AND ({$or_clauses}) "; } else { $sql .= " AND {$or_clauses} "; } } } } else { $formatted_value = $this->prepareForSql($field, $val); if (is_array($val)) { $sql .= " AND {$field} IN ({$formatted_value})"; } else { $sql .= " AND {$field}={$formatted_value}"; } } } } // 如果设置额外的条件,则加上 if (is_array($this->extra_cond)) { $sql .= DBHelper2::joinPairs($this->extra_cond, ' AND '); } elseif (!empty($this->extra_cond)) { $sql .= $this->extra_cond; } if (!empty($sql)) { return ' where 1=1 ' . $sql; } else { return ''; } }
private function commitData($value) { $sql = "update id_sequence set current_value=%d,next_value=next_value+%d where id_key='%s'"; $this->dbhelper->execute($sql, array($value, $this->step, $this->table_name)); }