diff options
author | Patrick Webster <noxwizard@phpbb.com> | 2012-05-08 18:44:43 -0500 |
---|---|---|
committer | Patrick Webster <noxwizard@phpbb.com> | 2012-05-08 18:44:43 -0500 |
commit | e52d23848a1b116d32fbad9dd384e0755553b829 (patch) | |
tree | 3d8b8d1774303e0c9e1eb38090c68022ba0e1827 | |
parent | c0718fae96a991182f3941dee02599077b5b447d (diff) | |
download | forums-e52d23848a1b116d32fbad9dd384e0755553b829.tar forums-e52d23848a1b116d32fbad9dd384e0755553b829.tar.gz forums-e52d23848a1b116d32fbad9dd384e0755553b829.tar.bz2 forums-e52d23848a1b116d32fbad9dd384e0755553b829.tar.xz forums-e52d23848a1b116d32fbad9dd384e0755553b829.zip |
[ticket/10858] Fix MSSQL Native's row seeking behavior
The result_mssqlnative class remains in case someone wants to use it
PHPBB3-10858
-rw-r--r-- | phpBB/includes/db/mssqlnative.php | 31 |
1 files changed, 28 insertions, 3 deletions
diff --git a/phpBB/includes/db/mssqlnative.php b/phpBB/includes/db/mssqlnative.php index 7fbc374e77..6391664a3e 100644 --- a/phpBB/includes/db/mssqlnative.php +++ b/phpBB/includes/db/mssqlnative.php @@ -447,14 +447,39 @@ class dbal_mssqlnative extends dbal { global $cache; + if ($query_id === false) + { + $query_id = $this->query_result; + } + if (isset($cache->sql_rowset[$query_id])) { return $cache->sql_rowseek($rownum, $query_id); } - $seek = new result_mssqlnative($query_id); - $row = $seek->seek($rownum); - return ($row = $seek->fetch()) ? $row : false; + if ($query_id === false) + { + return false; + } + + $this->sql_freeresult($query_id); + $query_id = $this->sql_query($this->last_query_text); + + if ($query_id === false) + { + return false; + } + + // We do not fetch the row for rownum == 0 because then the next resultset would be the second row + for ($i = 0; $i < $rownum; $i++) + { + if (!$this->sql_fetchrow($query_id)) + { + return false; + } + } + + return true; } /** |