From a8f4522dfacd4a2cdf9a61b3731783dcd4258adc Mon Sep 17 00:00:00 2001 From: martinlanghoff Date: Tue, 26 Sep 2006 05:08:18 +0000 Subject: [PATCH] data, forum, glossary: use sql_ilike() for a portable LIKE operator --- mod/data/lib.php | 5 +++-- mod/forum/lib.php | 16 ++++++++-------- mod/glossary/sql.php | 11 ++--------- 3 files changed, 13 insertions(+), 19 deletions(-) diff --git a/mod/data/lib.php b/mod/data/lib.php index 373771abf162b..9d494070ae962 100755 --- a/mod/data/lib.php +++ b/mod/data/lib.php @@ -1223,13 +1223,14 @@ function data_get_post_actions() { function data_fieldname_exists($name, $dataid, $fieldid=0) { global $CFG; + $LIKE = sql_ilike(); if ($fieldid) { return record_exists_sql("SELECT * from {$CFG->prefix}data_fields AS df - WHERE df.name LIKE '$name' AND df.dataid = $dataid + WHERE df.name $LIKE '$name' AND df.dataid = $dataid AND ((df.id < $fieldid) OR (df.id > $fieldid))"); } else { return record_exists_sql("SELECT * from {$CFG->prefix}data_fields AS df - WHERE df.name LIKE '$name' AND df.dataid = $dataid"); + WHERE df.name $LIKE '$name' AND df.dataid = $dataid"); } } diff --git a/mod/forum/lib.php b/mod/forum/lib.php index 0c959b2956464..4d1b13498fc57 100644 --- a/mod/forum/lib.php +++ b/mod/forum/lib.php @@ -755,6 +755,7 @@ function forum_user_complete($course, $user, $mod, $forum) { function forum_print_overview($courses,&$htmlarray) { global $USER, $CFG; + $LIKE = sql_ilike(); if (empty($courses) || !is_array($courses) || count($courses) == 0) { return array(); @@ -774,7 +775,7 @@ function forum_print_overview($courses,&$htmlarray) { } $sql = substr($sql,0,-3); // take off the last OR - $sql .= ") AND l.module = 'forum' AND action LIKE 'add post%' " + $sql .= ") AND l.module = 'forum' AND action $LIKE 'add post%' " ." AND userid != ".$USER->id." GROUP BY cmid,l.course,instance"; if (!$new = get_records_sql($sql)) { @@ -856,6 +857,7 @@ function forum_print_recent_activity($course, $isteacher, $timestart) { /// messages posted in the course since that date global $CFG; + $LIKE = sql_ilike(); $heading = false; $content = false; @@ -863,7 +865,7 @@ function forum_print_recent_activity($course, $isteacher, $timestart) { if (!$logs = get_records_select('log', 'time > \''.$timestart.'\' AND '. 'course = \''.$course->id.'\' AND '. 'module = \'forum\' AND '. - 'action LIKE \'add %\' ', 'time ASC')){ + 'action $LIKE \'add %\' ', 'time ASC')){ return false; } @@ -1264,15 +1266,13 @@ function forum_search_posts($searchterms, $courseid=0, $limitfrom=0, $limitnum=5 $selectdiscussion .= ")"; - // Some differences in syntax for PostgreSQL. + // Some differences SQL + $LIKE = sql_ilike(); + $NOTLIKE = 'NOT ' . $LIKE; if ($CFG->dbtype == 'postgres7') { - $LIKE = 'ILIKE'; // Case-insensitive - $NOTLIKE = 'NOT ILIKE'; // Case-insensitive $REGEXP = '~*'; $NOTREGEXP = '!~*'; - } else { // Note the LIKE are casesensitive for Oracle. Oracle 10g is required to use - $LIKE = 'LIKE'; // the caseinsensitive search using regexp_like() or NLS_COMP=LINGUISTIC :-( - $NOTLIKE = 'NOT LIKE'; // See http://docs.moodle.org/en/XMLDB_Problems#Case-insensitive_searches + } else { $REGEXP = 'REGEXP'; $NOTREGEXP = 'NOT REGEXP'; } diff --git a/mod/glossary/sql.php b/mod/glossary/sql.php index 16ef6da89d773..64dd5d06fe6e1 100644 --- a/mod/glossary/sql.php +++ b/mod/glossary/sql.php @@ -147,24 +147,17 @@ $where = ''; $fullpivot = 0; - if ($CFG->dbtype == "postgres7") { - $LIKE = "ILIKE"; // case-insensitive - } else { - $LIKE = "LIKE"; - } + $LIKE = sql_ilike(); + $NOTLIKE = 'NOT ' . $LIKE; switch ( $mode ) { case 'search': /// Some differences in syntax for PostgreSQL if ($CFG->dbtype == "postgres7") { - $LIKE = "ILIKE"; // case-insensitive - $NOTLIKE = "NOT ILIKE"; // case-insensitive $REGEXP = "~*"; $NOTREGEXP = "!~*"; } else { - $LIKE = "LIKE"; - $NOTLIKE = "NOT LIKE"; $REGEXP = "REGEXP"; $NOTREGEXP = "NOT REGEXP"; }