aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/db/sqlite.php
diff options
context:
space:
mode:
Diffstat (limited to 'phpBB/includes/db/sqlite.php')
-rw-r--r--phpBB/includes/db/sqlite.php62
1 files changed, 55 insertions, 7 deletions
diff --git a/phpBB/includes/db/sqlite.php b/phpBB/includes/db/sqlite.php
index 87d9af8c7f..cd6d40e3c7 100644
--- a/phpBB/includes/db/sqlite.php
+++ b/phpBB/includes/db/sqlite.php
@@ -22,10 +22,11 @@ if (!defined('SQL_LAYER'))
{
define('SQL_LAYER', 'sqlite');
- include($phpbb_root_path . 'includes/db/dbal.' . $phpEx);
+ include_once($phpbb_root_path . 'includes/db/dbal.' . $phpEx);
/**
* Sqlite Database Abstraction Layer
+* Minimum Requirement: 2.8.2+
* @package dbal
*/
class dbal_sqlite extends dbal
@@ -47,11 +48,20 @@ class dbal_sqlite extends dbal
{
@sqlite_query('PRAGMA short_column_names = 1', $this->db_connect_id);
}
+
return ($this->db_connect_id) ? true : array('message' => $error);
}
/**
+ * Version information about used database
+ */
+ function sql_server_info()
+ {
+ return 'SQLite ' . @sqlite_libversion();
+ }
+
+ /**
* SQL Transaction
* @access: private
*/
@@ -77,6 +87,12 @@ class dbal_sqlite 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)
{
@@ -159,11 +175,18 @@ class dbal_sqlite 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) ? @sqlite_num_rows($query_id) : false;
}
@@ -192,7 +215,9 @@ class dbal_sqlite extends dbal
return $cache->sql_fetchrow($query_id);
}
- return ($query_id) ? @sqlite_fetch_array($query_id, SQLITE_ASSOC) : false;
+ $row = @sqlite_fetch_array($query_id, SQLITE_ASSOC);
+
+ return $row;
}
/**
@@ -201,6 +226,8 @@ class dbal_sqlite extends dbal
*/
function sql_fetchfield($field, $rownum = false, $query_id = false)
{
+ global $cache;
+
if (!$query_id)
{
$query_id = $this->query_result;
@@ -208,15 +235,17 @@ class dbal_sqlite extends dbal
if ($query_id)
{
- if ($rownum === false)
+ if ($rownum !== false)
{
- return @sqlite_column($query_id, $field);
+ $this->sql_rowseek($rownum, $query_id);
}
- else
+
+ if (isset($cache->sql_rowset[$query_id]))
{
- $this->sql_rowseek($rownum, $query_id);
- return @sqlite_column($query_id, $field);
+ return $cache->sql_fetchfield($query_id, $field);
}
+
+ return @sqlite_column($query_id, $field);
}
return false;
@@ -228,11 +257,18 @@ class dbal_sqlite 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) ? @sqlite_seek($query_id, $rownum) : false;
}
@@ -249,6 +285,18 @@ class dbal_sqlite 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);
+ }
+
return true;
}