diff options
Diffstat (limited to 'phpBB/phpbb/db/driver/sqlite3.php')
| -rw-r--r-- | phpBB/phpbb/db/driver/sqlite3.php | 21 | 
1 files changed, 19 insertions, 2 deletions
| diff --git a/phpBB/phpbb/db/driver/sqlite3.php b/phpBB/phpbb/db/driver/sqlite3.php index 0922229e0a..4e3e0d3329 100644 --- a/phpBB/phpbb/db/driver/sqlite3.php +++ b/phpBB/phpbb/db/driver/sqlite3.php @@ -260,11 +260,11 @@ class sqlite3 extends \phpbb\db\driver\driver  	/**  	* {@inheritDoc}  	* -	* For SQLite an underscore is a not-known character... +	* For SQLite an underscore is an unknown character.  	*/  	public function sql_like_expression($expression)  	{ -		// Unlike LIKE, GLOB is case sensitive (unfortunatly). SQLite users need to live with it! +		// 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); @@ -275,6 +275,23 @@ class sqlite3 extends \phpbb\db\driver\driver  	}  	/** +	* {@inheritDoc} +	* +	* For SQLite an underscore is an unknown character. +	*/ +	public 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  	*  	* @return array | 
