aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/db/mssql.php
diff options
context:
space:
mode:
Diffstat (limited to 'phpBB/includes/db/mssql.php')
-rw-r--r--phpBB/includes/db/mssql.php36
1 files changed, 35 insertions, 1 deletions
diff --git a/phpBB/includes/db/mssql.php b/phpBB/includes/db/mssql.php
index 6ef8597c18..13a6fb8aab 100644
--- a/phpBB/includes/db/mssql.php
+++ b/phpBB/includes/db/mssql.php
@@ -22,7 +22,7 @@ if (!defined('SQL_LAYER'))
{
define('SQL_LAYER', 'mssql');
- include($phpbb_root_path . 'includes/db/dbal.' . $phpEx);
+ include_once($phpbb_root_path . 'includes/db/dbal.' . $phpEx);
/**
* MSSQL Database Abstraction Layer
@@ -103,6 +103,12 @@ class dbal_mssql extends dbal
/**
* Base query method
+ *
+ * @param string $query Contains the SQL query which shall be executed
+ * @param int $cache_ttl Either 0 to avoid caching or the time in seconds which the result shall be kept in cache
+ * @return mixed When casted to bool the returned value returns true on success and false on failure
+ *
+ * @access public
*/
function sql_query($query = '', $cache_ttl = 0)
{
@@ -203,11 +209,18 @@ class dbal_mssql extends dbal
*/
function sql_numrows($query_id = false)
{
+ global $cache;
+
if (!$query_id)
{
$query_id = $this->query_result;
}
+ if (isset($cache->sql_rowset[$query_id]))
+ {
+ return $cache->sql_numrows($query_id);
+ }
+
return ($query_id) ? @mssql_num_rows($query_id) : false;
}
@@ -256,6 +269,8 @@ class dbal_mssql extends dbal
*/
function sql_fetchfield($field, $rownum = false, $query_id = false)
{
+ global $cache;
+
if (!$query_id)
{
$query_id = $this->query_result;
@@ -268,6 +283,11 @@ class dbal_mssql extends dbal
$this->sql_rowseek($rownum, $query_id);
}
+ if (isset($cache->sql_rowset[$query_id]))
+ {
+ return $cache->sql_fetchfield($query_id, $field);
+ }
+
$row = $this->sql_fetchrow($query_id);
return isset($row[$field]) ? $row[$field] : false;
}
@@ -281,11 +301,18 @@ class dbal_mssql extends dbal
*/
function sql_rowseek($rownum, $query_id = false)
{
+ global $cache;
+
if (!$query_id)
{
$query_id = $this->query_result;
}
+ if (isset($cache->sql_rowset[$query_id]))
+ {
+ return $cache->sql_rowseek($query_id, $rownum);
+ }
+
return ($query_id) ? @mssql_data_seek($query_id, $rownum) : false;
}
@@ -313,11 +340,18 @@ class dbal_mssql extends dbal
*/
function sql_freeresult($query_id = false)
{
+ global $cache;
+
if (!$query_id)
{
$query_id = $this->query_result;
}
+ if (isset($cache->sql_rowset[$query_id]))
+ {
+ return $cache->sql_freeresult($query_id);
+ }
+
if (isset($this->open_queries[$query_id]))
{
unset($this->open_queries[$query_id]);