diff options
Diffstat (limited to 'phpBB/phpbb/db/driver/sqlite.php')
| -rw-r--r-- | phpBB/phpbb/db/driver/sqlite.php | 378 | 
1 files changed, 0 insertions, 378 deletions
| diff --git a/phpBB/phpbb/db/driver/sqlite.php b/phpBB/phpbb/db/driver/sqlite.php deleted file mode 100644 index d5da0e2438..0000000000 --- a/phpBB/phpbb/db/driver/sqlite.php +++ /dev/null @@ -1,378 +0,0 @@ -<?php -/** -* -* This file is part of the phpBB Forum Software package. -* -* @copyright (c) phpBB Limited <https://www.phpbb.com> -* @license GNU General Public License, version 2 (GPL-2.0) -* -* For full copyright and license information, please see -* the docs/CREDITS.txt file. -* -*/ - -namespace phpbb\db\driver; - -/** -* Sqlite Database Abstraction Layer -* Minimum Requirement: 2.8.2+ -*/ -class sqlite extends \phpbb\db\driver\driver -{ -	var $connect_error = ''; - -	/** -	* {@inheritDoc} -	*/ -	function sql_connect($sqlserver, $sqluser, $sqlpassword, $database, $port = false, $persistency = false, $new_link = false) -	{ -		$this->persistency = $persistency; -		$this->user = $sqluser; -		$this->server = $sqlserver . (($port) ? ':' . $port : ''); -		$this->dbname = $database; - -		$error = ''; -		if ($this->persistency) -		{ -			if (!function_exists('sqlite_popen')) -			{ -				$this->connect_error = 'sqlite_popen function does not exist, is sqlite extension installed?'; -				return $this->sql_error(''); -			} -			$this->db_connect_id = @sqlite_popen($this->server, 0666, $error); -		} -		else -		{ -			if (!function_exists('sqlite_open')) -			{ -				$this->connect_error = 'sqlite_open function does not exist, is sqlite extension installed?'; -				return $this->sql_error(''); -			} -			$this->db_connect_id = @sqlite_open($this->server, 0666, $error); -		} - -		if ($this->db_connect_id) -		{ -			@sqlite_query('PRAGMA short_column_names = 1', $this->db_connect_id); -//			@sqlite_query('PRAGMA encoding = "UTF-8"', $this->db_connect_id); -		} - -		return ($this->db_connect_id) ? true : array('message' => $error); -	} - -	/** -	* {@inheritDoc} -	*/ -	function sql_server_info($raw = false, $use_cache = true) -	{ -		global $cache; - -		if (!$use_cache || empty($cache) || ($this->sql_server_version = $cache->get('sqlite_version')) === false) -		{ -			$result = @sqlite_query('SELECT sqlite_version() AS version', $this->db_connect_id); -			$row = @sqlite_fetch_array($result, SQLITE_ASSOC); - -			$this->sql_server_version = (!empty($row['version'])) ? $row['version'] : 0; - -			if (!empty($cache) && $use_cache) -			{ -				$cache->put('sqlite_version', $this->sql_server_version); -			} -		} - -		return ($raw) ? $this->sql_server_version : 'SQLite ' . $this->sql_server_version; -	} - -	/** -	* SQL Transaction -	* @access private -	*/ -	function _sql_transaction($status = 'begin') -	{ -		switch ($status) -		{ -			case 'begin': -				return @sqlite_query('BEGIN', $this->db_connect_id); -			break; - -			case 'commit': -				return @sqlite_query('COMMIT', $this->db_connect_id); -			break; - -			case 'rollback': -				return @sqlite_query('ROLLBACK', $this->db_connect_id); -			break; -		} - -		return true; -	} - -	/** -	* {@inheritDoc} -	*/ -	function sql_query($query = '', $cache_ttl = 0) -	{ -		if ($query != '') -		{ -			global $cache; - -			// EXPLAIN only in extra debug mode -			if (defined('DEBUG')) -			{ -				$this->sql_report('start', $query); -			} -			else if (defined('PHPBB_DISPLAY_LOAD_TIME')) -			{ -				$this->curtime = microtime(true); -			} - -			$this->query_result = ($cache && $cache_ttl) ? $cache->sql_load($query) : false; -			$this->sql_add_num_queries($this->query_result); - -			if ($this->query_result === false) -			{ -				if (($this->query_result = @sqlite_query($query, $this->db_connect_id)) === false) -				{ -					$this->sql_error($query); -				} - -				if (defined('DEBUG')) -				{ -					$this->sql_report('stop', $query); -				} -				else if (defined('PHPBB_DISPLAY_LOAD_TIME')) -				{ -					$this->sql_time += microtime(true) - $this->curtime; -				} - -				if ($cache && $cache_ttl) -				{ -					$this->open_queries[(int) $this->query_result] = $this->query_result; -					$this->query_result = $cache->sql_save($this, $query, $this->query_result, $cache_ttl); -				} -				else if (strpos($query, 'SELECT') === 0 && $this->query_result) -				{ -					$this->open_queries[(int) $this->query_result] = $this->query_result; -				} -			} -			else if (defined('DEBUG')) -			{ -				$this->sql_report('fromcache', $query); -			} -		} -		else -		{ -			return false; -		} - -		return $this->query_result; -	} - -	/** -	* Build LIMIT query -	*/ -	function _sql_query_limit($query, $total, $offset = 0, $cache_ttl = 0) -	{ -		$this->query_result = false; - -		// if $total is set to 0 we do not want to limit the number of rows -		if ($total == 0) -		{ -			$total = -1; -		} - -		$query .= "\n LIMIT " . ((!empty($offset)) ? $offset . ', ' . $total : $total); - -		return $this->sql_query($query, $cache_ttl); -	} - -	/** -	* {@inheritDoc} -	*/ -	function sql_affectedrows() -	{ -		return ($this->db_connect_id) ? @sqlite_changes($this->db_connect_id) : false; -	} - -	/** -	* {@inheritDoc} -	*/ -	function sql_fetchrow($query_id = false) -	{ -		global $cache; - -		if ($query_id === false) -		{ -			$query_id = $this->query_result; -		} - -		if ($cache && $cache->sql_exists($query_id)) -		{ -			return $cache->sql_fetchrow($query_id); -		} - -		return ($query_id !== false) ? @sqlite_fetch_array($query_id, SQLITE_ASSOC) : false; -	} - -	/** -	* {@inheritDoc} -	*/ -	function sql_rowseek($rownum, &$query_id) -	{ -		global $cache; - -		if ($query_id === false) -		{ -			$query_id = $this->query_result; -		} - -		if ($cache && $cache->sql_exists($query_id)) -		{ -			return $cache->sql_rowseek($rownum, $query_id); -		} - -		return ($query_id !== false) ? @sqlite_seek($query_id, $rownum) : false; -	} - -	/** -	* {@inheritDoc} -	*/ -	function sql_nextid() -	{ -		return ($this->db_connect_id) ? @sqlite_last_insert_rowid($this->db_connect_id) : false; -	} - -	/** -	* {@inheritDoc} -	*/ -	function sql_freeresult($query_id = false) -	{ -		global $cache; - -		if ($query_id === false) -		{ -			$query_id = $this->query_result; -		} - -		if ($cache && !is_object($query_id) && $cache->sql_exists($query_id)) -		{ -			return $cache->sql_freeresult($query_id); -		} - -		return true; -	} - -	/** -	* {@inheritDoc} -	*/ -	function sql_escape($msg) -	{ -		return @sqlite_escape_string($msg); -	} - -	/** -	* {@inheritDoc} -	* -	* For SQLite an underscore is a not-known character... this may change with SQLite3 -	*/ -	function sql_like_expression($expression) -	{ -		// Unlike LIKE, GLOB is unfortunately case sensitive. -		// We only catch * and ? here, not the character map possible on file globbing. -		$expression = str_replace(array(chr(0) . '_', chr(0) . '%'), array(chr(0) . '?', chr(0) . '*'), $expression); - -		$expression = str_replace(array('?', '*'), array("\?", "\*"), $expression); -		$expression = str_replace(array(chr(0) . "\?", chr(0) . "\*"), array('?', '*'), $expression); - -		return 'GLOB \'' . $this->sql_escape($expression) . '\''; -	} - -	/** -	* {@inheritDoc} -	* -	* For SQLite an underscore is a not-known character... -	*/ -	function sql_not_like_expression($expression) -	{ -		// Unlike NOT LIKE, NOT GLOB is unfortunately case sensitive. -		// We only catch * and ? here, not the character map possible on file globbing. -		$expression = str_replace(array(chr(0) . '_', chr(0) . '%'), array(chr(0) . '?', chr(0) . '*'), $expression); - -		$expression = str_replace(array('?', '*'), array("\?", "\*"), $expression); -		$expression = str_replace(array(chr(0) . "\?", chr(0) . "\*"), array('?', '*'), $expression); - -		return 'NOT GLOB \'' . $this->sql_escape($expression) . '\''; -	} - -	/** -	* return sql error array -	* @access private -	*/ -	function _sql_error() -	{ -		if (function_exists('sqlite_error_string')) -		{ -			$error = array( -				'message'	=> @sqlite_error_string(@sqlite_last_error($this->db_connect_id)), -				'code'		=> @sqlite_last_error($this->db_connect_id), -			); -		} -		else -		{ -			$error = array( -				'message'	=> $this->connect_error, -				'code'		=> '', -			); -		} - -		return $error; -	} - -	/** -	* Build db-specific query data -	* @access private -	*/ -	function _sql_custom_build($stage, $data) -	{ -		return $data; -	} - -	/** -	* Close sql connection -	* @access private -	*/ -	function _sql_close() -	{ -		return @sqlite_close($this->db_connect_id); -	} - -	/** -	* Build db-specific report -	* @access private -	*/ -	function _sql_report($mode, $query = '') -	{ -		switch ($mode) -		{ -			case 'start': -			break; - -			case 'fromcache': -				$endtime = explode(' ', microtime()); -				$endtime = $endtime[0] + $endtime[1]; - -				$result = @sqlite_query($query, $this->db_connect_id); -				while ($void = @sqlite_fetch_array($result, SQLITE_ASSOC)) -				{ -					// Take the time spent on parsing rows into account -				} - -				$splittime = explode(' ', microtime()); -				$splittime = $splittime[0] + $splittime[1]; - -				$this->sql_report('record_fromcache', $query, $endtime, $splittime); - -			break; -		} -	} -} | 
