Same name and namespace in other branches
  1. 6.x-3.x includes/view.inc \views_db_object::save_row()

Write the row to the database.

Parameters

bool $update: If true this will be an UPDATE query. Otherwise it will be an INSERT.

1 call to views_db_object::save_row()
view::save in includes/view.inc
Save the view to the database.

File

includes/view.inc, line 2276
views_objects Objects that represent a View or part of a view

Class

views_db_object

Code

public function save_row($update = NULL) {
  $fields = $defs = $values = $serials = array();
  $schema = drupal_get_schema($this->db_table);

  // Go through our schema and build correlations.
  foreach ($schema['fields'] as $field => $info) {

    // Special case - skip serial types if we are updating.
    if ($info['type'] == 'serial') {
      $serials[] = $field;
      continue;
    }
    elseif ($info['type'] == 'int') {
      $this->{$field} = (int) $this->{$field};
    }
    $fields[$field] = empty($info['serialize']) ? $this->{$field} : serialize($this->{$field});
  }
  if (!$update) {
    $query = db_insert($this->db_table);
  }
  else {
    $query = db_update($this->db_table)
      ->condition($update, $this->{$update});
  }
  $return = $query
    ->fields($fields)
    ->execute();
  if ($serials && !$update) {

    // Get last insert ids and fill them in. Well, one ID.
    foreach ($serials as $field) {
      $this->{$field} = $return;
    }
  }
}