|
<?php |
|
|
|
namespace PicoDb\Builder; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class UpdateBuilder extends BaseBuilder |
|
{ |
|
|
|
|
|
|
|
protected $sumColumns = array(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function withSumColumns(array $columns) |
|
{ |
|
$this->sumColumns = $columns; |
|
return $this; |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function build() |
|
{ |
|
$columns = array(); |
|
|
|
foreach ($this->columns as $column) { |
|
$columns[] = $this->db->escapeIdentifier($column).'=?'; |
|
} |
|
|
|
foreach ($this->sumColumns as $column) { |
|
$columns[] = $this->db->escapeIdentifier($column).'='.$this->db->escapeIdentifier($column).' + ?'; |
|
} |
|
|
|
return sprintf( |
|
'UPDATE %s SET %s %s', |
|
$this->db->escapeIdentifier($this->table), |
|
implode(', ', $columns), |
|
$this->conditionBuilder->build() |
|
); |
|
} |
|
} |
|
|