From 01943adbf72e137b9dfbda3ac85120c21a30fab8 Mon Sep 17 00:00:00 2001 From: Geolim4 Date: Fri, 8 Aug 2014 18:32:17 +0200 Subject: [ticket/12671] Possibility to use NOT LIKE expression PHPBB3-12671 --- phpBB/phpbb/db/driver/sqlite3.php | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'phpBB/phpbb/db/driver/sqlite3.php') diff --git a/phpBB/phpbb/db/driver/sqlite3.php b/phpBB/phpbb/db/driver/sqlite3.php index 0922229e0a..f79245afb1 100644 --- a/phpBB/phpbb/db/driver/sqlite3.php +++ b/phpBB/phpbb/db/driver/sqlite3.php @@ -274,6 +274,23 @@ class sqlite3 extends \phpbb\db\driver\driver return 'GLOB \'' . $this->sql_escape($expression) . '\''; } + /** + * {@inheritDoc} + * + * For SQLite an underscore is a not-known character... + */ + public function sql_not_like_expression($expression) + { + // Unlike LIKE, GLOB is case sensitive (unfortunatly). SQLite users need to live with it! + // 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) . '\''; + } + /** * return sql error array * -- cgit v1.2.1 From 635cde218c786f76397c3354e59f96a8a151c132 Mon Sep 17 00:00:00 2001 From: Geolim4 Date: Sat, 9 Aug 2014 15:04:39 +0200 Subject: [ticket/12671] Possibility to use NOT LIKE expression PHPBB3-12671 --- phpBB/phpbb/db/driver/sqlite3.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'phpBB/phpbb/db/driver/sqlite3.php') diff --git a/phpBB/phpbb/db/driver/sqlite3.php b/phpBB/phpbb/db/driver/sqlite3.php index f79245afb1..2bf4ed51aa 100644 --- a/phpBB/phpbb/db/driver/sqlite3.php +++ b/phpBB/phpbb/db/driver/sqlite3.php @@ -281,14 +281,14 @@ class sqlite3 extends \phpbb\db\driver\driver */ public function sql_not_like_expression($expression) { - // Unlike LIKE, GLOB is case sensitive (unfortunatly). SQLite users need to live with it! + // Unlike NOT LIKE,NOT GLOB is case sensitive (unfortunatly). SQLite users need to live with it! // 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) . '\''; + return 'NOT GLOB \'' . $this->sql_escape($expression) . '\''; } /** -- cgit v1.2.1 From db0815f680d4ed9da845facb6e8e3975ac14621e Mon Sep 17 00:00:00 2001 From: Geolim4 Date: Sat, 9 Aug 2014 19:11:21 +0200 Subject: [ticket/12671] Possibility to use NOT LIKE expression PHPBB3-12671 --- phpBB/phpbb/db/driver/sqlite3.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'phpBB/phpbb/db/driver/sqlite3.php') diff --git a/phpBB/phpbb/db/driver/sqlite3.php b/phpBB/phpbb/db/driver/sqlite3.php index 2bf4ed51aa..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); @@ -277,11 +277,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_not_like_expression($expression) { - // Unlike NOT LIKE,NOT GLOB is case sensitive (unfortunatly). SQLite users need to live with it! + // 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); -- cgit v1.2.1