创建“ LIKE”查询时,也可以使用Drupal \ Core \ Database \ Database。由于不推荐使用db_select(),因此这是Drupal 8的替代语法。
$database = Database::getConnection();
$query = $database->select('TABLE NAME', 'u')
->fields('u', array('column1','column2'));
$query->condition('column1', '%'.$database->escapeLike($search_phrase) . '%', 'LIKE');
或使用OR查询添加倍数。
$DB_OR = $query->orConditionGroup()
// find match anywhere in field
->condition('column1', '%' . $database->escapeLike($search_phrase) . '%', 'LIKE')
// find match starting at beginning
->condition('column2', $database->escapeLike($search_phrase) . '%', 'LIKE');
// find match at end of field
->condition('column1', '%' . $database->escapeLike($search_phrase), 'LIKE')
$query->condition($DB_OR); // Add OR object as condition
$result = $query->execute();
db_query
作为参数传递给占位符,也可以将其作为参数传递给...Query::condition
。您不会为每种不同类型的查询找到每个操作员的文档,因为这样做是没有意义的。这一切都会在一天结束时通过PDO,如果db_like
为正确地准备了一个变量db_query
,那么根据定义它将为正确地准备相同的变量db_select