protected function GET_details($rsc, $j = NULL) { global $config; global $phphw_common_json; $assignment = $rsc[1]; $guard = new \PHPREST\DB\Guard($config['db']); $sql = <<<EOSQL SELECT name, title, deadline, description FROM {$guard->tables->assignment} WHERE name = ? LOCK IN SHARE MODE; EOSQL; $stmt = $guard->mysqli->prepare($sql); $stmt->bind_param('s', $assignment); $stmt->execute(); $result = $stmt->get_result(); $details = $result->fetch_assoc(); if (!$details) { return $phphw_common_json['nonexist']; } $result->free(); $stmt->close(); $guard->commit(); return ['result' => 'OK', 'status' => '200', 'reason' => 'Success', 'details' => $details]; }
public function delete_token($rsc, $j) { global $config; global $phphw_common_json; $login = $rsc[1]; $token = $j->token; $guard = new \PHPREST\DB\Guard($config['db']); $sql = <<<EOSQL UPDATE {$guard->tables->token} SET expired = TRUE WHERE user IN ( \tSELECT id FROM {$guard->tables->user} \tWHERE login = ? ) AND token = ? EOSQL; /*SELECT id FROM {$guard->tables->token} INNER JOIN {$guard->tables->user} ON {$guard->tables->user}.id = user AND login = ? AND token = ? FOR UPDATE*/ $stmt = $guard->mysqli->prepare($sql); $stmt->bind_param('ss', $login, $token); $stmt->execute(); if (!$stmt->affected_rows) { return $phphw_common_json['unauthorized']; } $stmt->close(); $guard->commit(); return ['result' => 'OK', 'status' => '200', 'reason' => 'Logout Success']; }