/** * {@inheritdoc} */ public function compileInsert($table, array $columns, array $rowsets) { if (count($rowsets) == 1) { return parent::compileInsert($table, $columns, $rowsets); } //SQLite uses alternative syntax $statement = []; $statement[] = "INSERT INTO {$this->quote($table, true)} ({$this->prepareColumns($columns)})"; foreach ($rowsets as $rowset) { if (count($statement) == 1) { $selectColumns = []; foreach ($columns as $column) { $selectColumns[] = "? AS {$this->quote($column)}"; } $statement[] = 'SELECT ' . join(', ', $selectColumns); } else { $statement[] = 'UNION SELECT ' . trim(str_repeat('?, ', count($columns)), ', '); } } return join("\n", $statement); }
/** * {@inheritdoc} */ public function compileInsert($table, array $columns, array $rowsets, $primaryKey = '') { return parent::compileInsert($table, $columns, $rowsets) . (!empty($primaryKey) ? ' RETURNING ' . $this->quote($primaryKey) : ''); }