mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-12-27 09:09:04 +01:00
- Fix infinite loop bug if you use 'OR' in search
- Use case-insensitive LIKE from db capabilities
This commit is contained in:
parent
e02abbb38f
commit
e2d54119dd
@ -1109,6 +1109,7 @@ class so_sql
|
|||||||
}
|
}
|
||||||
elseif ($token == strtoupper(lang('OR')) || $token == 'OR')
|
elseif ($token == strtoupper(lang('OR')) || $token == 'OR')
|
||||||
{
|
{
|
||||||
|
$token = strtok($break);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
elseif ($token == strtoupper(lang('NOT')) || $token == 'NOT')
|
elseif ($token == strtoupper(lang('NOT')) || $token == 'NOT')
|
||||||
@ -1153,7 +1154,7 @@ class so_sql
|
|||||||
$op = 'OR';
|
$op = 'OR';
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
$token_filter = " $columns LIKE " .
|
$token_filter = " $columns " . $this->db->capabilities['case_insensitive_like'] . ' ' .
|
||||||
$GLOBALS['egw']->db->quote($wildcard.str_replace(array('%','_','*','?'),array('\\%','\\_','%','_'),$token).$wildcard);
|
$GLOBALS['egw']->db->quote($wildcard.str_replace(array('%','_','*','?'),array('\\%','\\_','%','_'),$token).$wildcard);
|
||||||
|
|
||||||
// Compare numeric token as equality for numeric columns
|
// Compare numeric token as equality for numeric columns
|
||||||
@ -1165,7 +1166,8 @@ class so_sql
|
|||||||
if($wildcard == '')
|
if($wildcard == '')
|
||||||
{
|
{
|
||||||
// Token has a wildcard from user, use LIKE
|
// Token has a wildcard from user, use LIKE
|
||||||
$numeric_filter[] = "($col IS NOT NULL AND CAST($col AS CHAR) LIKE " .
|
$numeric_filter[] = "($col IS NOT NULL AND CAST($col AS CHAR) " .
|
||||||
|
$this->db->capabilities['case_insensitive_like'] . ' ' .
|
||||||
$GLOBALS['egw']->db->quote(str_replace(array('%','_','*','?'),array('\\%','\\_','%','_'),$token)) . ')';
|
$GLOBALS['egw']->db->quote(str_replace(array('%','_','*','?'),array('\\%','\\_','%','_'),$token)) . ')';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
Loading…
Reference in New Issue
Block a user