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

Returns a new InsertQuery object for the active database.

Parameters

string $table: The table into which to insert.

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

Return value

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

Deprecated

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

See also

\Drupal\Core\Database\Connection::insert()

\Drupal\Core\Database\Connection::defaultOptions()

Related topics

4 calls to db_insert()
InsertTest::testMultiInsert in core/modules/system/src/Tests/Database/InsertTest.php
Tests that we can insert multiple records in one query object.
InsertTest::testRepeatedInsert in core/modules/system/src/Tests/Database/InsertTest.php
Tests that an insert object can be reused with new data after it executes.
InsertTest::testSimpleInsert in core/modules/system/src/Tests/Database/InsertTest.php
Tests very basic insert functionality.
tracker_cron in core/modules/tracker/tracker.module
Implements hook_cron().

File

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

Code

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

Comments

Sudishth’s picture

$db = \Drupal::database();
$result = $db->insert('test') // Table name no longer needs {}
    ->fields(array(
      'name' => $form_state->getValue('name'),
      'phone' => $form_state->getValue('phone_number'),
    ))
    ->execute();
    drupal_set_message($this->t('Your submission id is @id', array('@id' => $id)

i am using this code it working for me

Swarnendu-Dutta’s picture

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


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

$db_name = 'social_share_statistics';

$data = array(
            'uid' => $account->id(),
            'nid' => $nid,
            'timestamp' => REQUEST_TIME,
            'fb' => '0',
            'twitter' => '1',
          );
$connection->insert($db_name)
        ->fields($data)
        ->execute();