Update::execute

public function Update::execute

public 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

File

core/lib/Drupal/Core/Database/Query/Update.php, line 120

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 $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);
}

© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/core!lib!Drupal!Core!Database!Query!Update.php/function/Update::execute/8.1.x

在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号

意见反馈
返回顶部