public function Select::preExecute in Zircon Profile 8
Same name and namespace in other branches
- 8.0 core/lib/Drupal/Core/Database/Query/Select.php \Drupal\Core\Database\Query\Select::preExecute()
 
Generic preparation and validation for a SELECT query.
Return value
TRUE if the validation was successful, FALSE if not.
Overrides SelectInterface::preExecute
1 call to Select::preExecute()
- Select::execute in core/
lib/ Drupal/ Core/ Database/ Query/ Select.php  - Runs the query against the database.
 
File
- core/
lib/ Drupal/ Core/ Database/ Query/ Select.php, line 434  - Contains \Drupal\Core\Database\Query\Select.
 
Class
- Select
 - Query builder for SELECT statements.
 
Namespace
Drupal\Core\Database\QueryCode
public function preExecute(SelectInterface $query = NULL) {
  // If no query object is passed in, use $this.
  if (!isset($query)) {
    $query = $this;
  }
  // Only execute this once.
  if ($query
    ->isPrepared()) {
    return TRUE;
  }
  // Modules may alter all queries or only those having a particular tag.
  if (isset($this->alterTags)) {
    $hooks = array(
      'query',
    );
    foreach ($this->alterTags as $tag => $value) {
      $hooks[] = 'query_' . $tag;
    }
    \Drupal::moduleHandler()
      ->alter($hooks, $query);
  }
  $this->prepared = TRUE;
  // Now also prepare any sub-queries.
  foreach ($this->tables as $table) {
    if ($table['table'] instanceof SelectInterface) {
      $table['table']
        ->preExecute();
    }
  }
  foreach ($this->union as $union) {
    $union['query']
      ->preExecute();
  }
  return $this->prepared;
}