public function Update::execute

Same name in this branch
  1. 8.x drupal/core/lib/Drupal/Core/Database/Query/Update.php \Drupal\Core\Database\Query\Update::execute()
  2. 8.x drupal/core/lib/Drupal/Core/Database/Driver/pgsql/Update.php \Drupal\Core\Database\Driver\pgsql\Update::execute()

Executes the UPDATE query.

Return value

The number of rows matched by the update query. This includes rows that actually didn't have to be updated because the values didn't change.

Overrides Query::execute

1 method overrides Update::execute()
Update::execute in drupal/core/lib/Drupal/Core/Database/Driver/pgsql/Update.php
Executes the UPDATE query.

File

drupal/core/lib/Drupal/Core/Database/Query/Update.php, line 206
Definition of Drupal\Core\Database\Query\Update

Class

Update
General class for an abstracted UPDATE operation.

Namespace

Drupal\Core\Database\Query

Code

public function execute() {

  // Expressions take priority over literal fields, so we process those first
  // and remove any literal fields that conflict.
  $fields = $this->fields;
  $update_values = array();
  foreach ($this->expressionFields as $field => $data) {
    if (!empty($data['arguments'])) {
      $update_values += $data['arguments'];
    }
    if ($data['expression'] instanceof SelectInterface) {
      $data['expression']
        ->compile($this->connection, $this);
      $update_values += $data['expression']
        ->arguments();
    }
    unset($fields[$field]);
  }

  // Because we filter $fields the same way here and in __toString(), the
  // placeholders will all match up properly.
  $max_placeholder = 0;
  foreach ($fields as $field => $value) {
    $update_values[':db_update_placeholder_' . $max_placeholder++] = $value;
  }
  if (count($this->condition)) {
    $this->condition
      ->compile($this->connection, $this);
    $update_values = array_merge($update_values, $this->condition
      ->arguments());
  }
  return $this->connection
    ->query((string) $this, $update_values, $this->queryOptions);
}