tableName = $name; $this->columns = $columns; $this->rows = array(); $this->onDuplicateKey = NULL; $this->returning = NULL; } public function addRow(...$values): Insert { $this->rows[] = $values; return $this; } public function onDuplicateKeyStrategy(Strategy $strategy): Insert { $this->onDuplicateKey = $strategy; return $this; } public function returning(string $column): Insert { $this->returning = $column; return $this; } public function execute(): bool { return $this->sql->executeInsert($this); } public function getTableName(): string { return $this->tableName; } public function getColumns(): array { return $this->columns; } public function getRows(): array { return $this->rows; } public function onDuplicateKey(): ?Strategy { return $this->onDuplicateKey; } public function getReturning(): ?string { return $this->returning; } }