8.4.x database.inc db_update($table, array $options = [])
8.0.x database.inc db_update($table, array $options = array())
8.1.x database.inc db_update($table, array $options = array())
8.2.x database.inc db_update($table, array $options = array())
8.3.x database.inc db_update($table, array $options = [])
8.5.x database.inc db_update($table, array $options = [])
7.x database.inc db_update($table, array $options = array())

Returns a new UpdateQuery object for the active database.


string $table: The table to update.

array $options: An array of options to control how the query operates.

Return value

\Drupal\Core\Database\Query\Update A new Update object for this connection.


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 update() on it. For example, $injected_database->update($table, $options);

See also



Related topics

49 calls to db_update()
AggregatorCronTest::testCron in core/modules/aggregator/src/Tests/AggregatorCronTest.php
Adds feeds and updates them via cron process.
DatabaseStorageTest::update in core/modules/config/src/Tests/Storage/DatabaseStorageTest.php
DeleteTest::testInUse in core/modules/file/src/Tests/DeleteTest.php
Tries deleting a file that is in use.
drupal-7.contact.database.php in core/modules/contact/tests/drupal-7.contact.database.php
Database additions for Drupal\contact\Tests\ContactUpgradePathTest.
FileFieldRevisionTest::testRevisions in core/modules/file/src/Tests/FileFieldRevisionTest.php
Tests creating multiple revisions of a node and managing attached files.

... See full list


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


function db_update($table, array $options = array()) {
  if (empty($options['target']) || $options['target'] == 'replica') {
    $options['target'] = 'default';
  return Database::getConnection($options['target'])->update($table, $options);


sagesolutions’s picture

For example, if you want to update a table called 'node__field_graduate_title' and remove the html:

$connection = \Drupal\Core\Database\Database::getConnection();

	$results = $connection->query('select bundle, entity_id, revision_id, field_graduate_title_value from node__field_graduate_title;')->fetchAll();

	if ($results) {    
		foreach ($results as $record) {

			$graduate_title = strip_tags($record->field_graduate_title_value);
					'field_graduate_title_value' => $graduate_title,
				->condition('bundle', $record->bundle, '=')
				->condition('revision_id', $record->revision_id, '=')
				->condition('entity_id', $record->entity_id, '=')
Dinesh18’s picture

Thanks for the non-deprecated example. It worked for me