/** * @param string $login * @param int $offset * @param int $length * @return Rent[] * @throws \InvalidArgumentException */ function getCurrents($login, $offset = null, $length = null) { if (!preg_match('/^[a-zA-Z0-9-_\\.]{1,25}$/', $login)) { throw new \InvalidArgumentException(); } $quotedLogin = $this->db()->quote($login); $result = $this->db()->execute('SELECT R.*, S.login FROM Rents R ' . 'LEFT JOIN Servers S ON R.id = S.idRent ' . 'WHERE playerLogin = %s ' . 'AND rentDate < NOW() ' . 'AND DATE_ADD(rentDate, INTERVAL duration HOUR) > NOW() ' . 'ORDER BY DATE_ADD(rentDate, INTERVAL duration HOUR) DESC %s', $quotedLogin, \ManiaLib\Database\Tools::getLimitString($offset, $length)); return Rent::arrayFromRecordSet($result); }