8.5.x database.inc db_like($string)
8.0.x database.inc db_like($string)
8.1.x database.inc db_like($string)
8.2.x database.inc db_like($string)
8.3.x database.inc db_like($string)
8.4.x database.inc db_like($string)
8.6.x database.inc db_like($string)
7.x database.inc db_like($string)

Escapes characters that work as wildcard characters in a LIKE pattern.

The wildcard characters "%" and "_" as well as backslash are prefixed with a backslash. Use this to do a search for a verbatim string without any wildcard behavior.

You must use a query builder like db_select() in order to use db_like() on all supported database systems. Using db_like() with db_query() or db_query_range() is not supported.

For example, the following does a case-insensitive query for all rows whose name starts with $prefix:

$result = db_select('person', 'p')
  ->condition('name', db_like($prefix) . '%', 'LIKE')

Backslash is defined as escape character for LIKE patterns in DatabaseCondition::mapConditionOperator().


string $string: The string to escape.

Return value

string The escaped string.


as of Drupal 8.0.x, will be removed in Drupal 9.0.0. Instead, get a database connection injected into your service from the container and call escapeLike() on it. For example, $injected_database->escapeLike($string);

See also


Related topics

15 calls to db_like()
Combine::opContains in core/modules/views/src/Plugin/views/filter/Combine.php
Combine::opEndsWith in core/modules/views/src/Plugin/views/filter/Combine.php
Combine::opNotEndsWith in core/modules/views/src/Plugin/views/filter/Combine.php
Combine::opNotLike in core/modules/views/src/Plugin/views/filter/Combine.php
Combine::opNotStartsWith in core/modules/views/src/Plugin/views/filter/Combine.php

... See full list


core/includes/database.inc, line 422
Core systems for the database layer.


function db_like($string) {
  return Database::getConnection()