From adf947ffd2957bc98ab2b0e86e8843489b2b4106 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Rapha=C3=ABl=20Barrois?= Date: Wed, 10 Feb 2010 09:41:11 +0100 Subject: [PATCH] Add XDB::formatWildcard MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Raphaël Barrois --- classes/xdb.php | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/classes/xdb.php b/classes/xdb.php index a652ed5..34485e1 100644 --- a/classes/xdb.php +++ b/classes/xdb.php @@ -159,6 +159,28 @@ class XDB return '(' . implode(', ', array_map(array('XDB', 'escape'), $array)) . ')'; } + const WILDCARD_EXACT = 0x00; + const WILDCARD_PREFIX = 0x01; + const WILDCARD_SUFFIX = 0x02; + const WILDCARD_CONTAINS = 0x03; // WILDCARD_PREFIX | WILDCARD_SUFFIX + + // Returns the SQL statement for a wildcard search. + public static function formatWildcards($mode, $text) + { + if ($mode == self::WILDCARD_EXACT) { + return XDB::format(' = {?}', $text); + } else { + $text = str_replace(array('%', '_'), array('\%', '\_'), $text); + if ($mode & self::WILDCARD_PREFIX) { + $text = $text . '%'; + } + if ($mode & self::WILDCARD_SUFFIX) { + $text = '%' . $text; + } + return XDB::format(" LIKE {?}", $text); + } + } + public static function execute() { global $globals; -- 2.1.4