function InsertQuery_mysql::execute

Overrides InsertQuery::execute

File

includes/database/mysql/query.inc, line 16

Class

InsertQuery_mysql
@file Query code for MySQL embedded database engine.

Code

public function execute() {
    if (!$this->preExecute()) {
        return NULL;
    }
    // If we're selecting from a SelectQuery, finish building the query and
    // pass it back, as any remaining options are irrelevant.
    if (empty($this->fromQuery)) {
        $max_placeholder = 0;
        $values = array();
        foreach ($this->insertValues as $insert_values) {
            foreach ($insert_values as $value) {
                $values[':db_insert_placeholder_' . $max_placeholder++] = $value;
            }
        }
    }
    else {
        $values = $this->fromQuery
            ->getArguments();
    }
    $last_insert_id = $this->connection
        ->query((string) $this, $values, $this->queryOptions);
    // Re-initialize the values array so that we can re-use this query.
    $this->insertValues = array();
    return $last_insert_id;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.