Error message

You are browsing documentation for drupal 7.x, which is not supported anymore. Read the updated version of this page for drupal 11.x (the latest version).

function DatabaseCondition::mapConditionOperator

Gets any special processing requirements for the condition operator.

Some condition types require special processing, such as IN, because the value data they pass in is not a simple value. This is a simple overridable lookup function.

Parameters

$operator: The condition operator, such as "IN", "BETWEEN", etc. Case-sensitive.

Return value

The extra handling directives for the specified operator, or NULL.

1 call to DatabaseCondition::mapConditionOperator()
DatabaseCondition::compile in includes/database/query.inc
Implements QueryConditionInterface::compile().

File

includes/database/query.inc, line 1971

Class

DatabaseCondition
Generic class for a series of conditions in a query.

Code

protected function mapConditionOperator($operator) {
 // $specials does not use drupal_static as its value never changes.
 static $specials = array(
 'BETWEEN' => array(
 'delimiter' => ' AND ',
 ),
 'IN' => array(
 'delimiter' => ', ',
 'prefix' => ' (',
 'postfix' => ')',
 ),
 'NOT IN' => array(
 'delimiter' => ', ',
 'prefix' => ' (',
 'postfix' => ')',
 ),
 'EXISTS' => array(
 'prefix' => ' (',
 'postfix' => ')',
 ),
 'NOT EXISTS' => array(
 'prefix' => ' (',
 'postfix' => ')',
 ),
 'IS NULL' => array(
 'use_value' => FALSE,
 ),
 'IS NOT NULL' => array(
 'use_value' => FALSE,
 ),
 // Use backslash for escaping wildcard characters.
'LIKE' => array(
 'postfix' => " ESCAPE '\\\\'",
 ),
 'NOT LIKE' => array(
 'postfix' => " ESCAPE '\\\\'",
 ),
 // These ones are here for performance reasons.
'=' => array(),
 '<' => array(),
 '>' => array(),
 '>=' => array(),
 '<=' => array(),
 );
 if (isset($specials[$operator])) {
 $return = $specials[$operator];
 }
 else {
 // We need to upper case because PHP index matches are case sensitive but
 // do not need the more expensive drupal_strtoupper because SQL statements are ASCII.
 $operator = strtoupper ($operator);
 $return = isset($specials[$operator]) ? $specials[$operator] : array();
 }
 $return += array(
 'operator' => $operator,
 );
 return $return;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.