prepare("INSERT INTO tokens VALUES(?, ?, ?, ?)"); $stmt->bind_param("siis", $token, $id, $expire, $data); $stmt->execute(); $stmt->get_result(); return $token; } /** * Checks whether token exists in the database and has not expired. * @param String $token * @param int $id user ID * @param String $data * @return int count of results in database */ public static function validate($token, $id, $data) { global $mysqli; $time = time(); $stmt = $mysqli->prepare("SELECT count(*) as count FROM tokens WHERE token = ? AND user = ? AND expire>=? AND data LIKE ?"); $stmt->bind_param("siis", $token, $id, $time, $data); $stmt->execute(); $query = $stmt->get_result(); return $query->fetch_assoc()['count']; } /** * Returns token data * @param String $token * @param int $id user ID * @return String data */ public static function get_data($token, $id) { global $mysqli; $stmt = $mysqli->prepare("SELECT data as count FROM tokens WHERE token = ? AND user = ?"); $stmt->bind_param("si", $token, $id); $stmt->execute(); $query = $stmt->get_result(); return $query->fetch_assoc()['data']; } /** * Deletes token. * @param String $token * @return void */ public static function delete($token) { global $mysqli; $time = time(); $stmt = $mysqli->prepare("DELETE FROM tokens WHERE token = ? OR expirebind_param("sd", $token,$time); $stmt->execute(); $stmt->get_result(); } }