Browse files

data, forum, glossary: use sql_ilike() for a portable LIKE operator

  • Loading branch information...
1 parent 95008f8 commit a8f4522dfacd4a2cdf9a61b3731783dcd4258adc martinlanghoff committed Sep 26, 2006
Showing with 13 additions and 19 deletions.
  1. +3 −2 mod/data/lib.php
  2. +8 −8 mod/forum/lib.php
  3. +2 −9 mod/glossary/sql.php
View
5 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");
}
}
View
16 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,14 +857,15 @@ 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;
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';
}
View
11 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";
}

0 comments on commit a8f4522

Please sign in to comment.