ulmus/src/Query/Set.php
Dave Mc Nicoll 4571517dc8 - Added some SearchRequest attributes ; now it's even simpler to add searchable fields
- Began decoupling of QueryBuilder from native MySQL method ; some works needs to be done on for the Repository object splitting also.
2024-04-09 19:14:27 -04:00

51 lines
1.1 KiB
PHP

<?php
namespace Ulmus\Query;
use Ulmus\MysqlQueryBuilder;
class Set extends Fragment {
public int $order = 0;
public array $dataset;
public ? array $escapedFields;
public QueryBuilderInterface $queryBuilder;
public function __construct(QueryBuilderInterface $queryBuilder)
{
$this->queryBuilder = $queryBuilder;
}
public function set(array $dataset, ? array $escapedFields = null) : self
{
$this->dataset = $dataset;
$this->escapedFields = $escapedFields;
return $this;
}
public function render() /* : mixed */
{
return $this->renderSegments([
'SET', $this->renderParameterPlaceholders(),
]);
}
public function renderParameterPlaceholders() : string
{
$keys = [];
foreach($this->dataset as $key =>$value) {
$this->queryBuilder->addParameter($value, ":v_$key");
$field = $this->escapedFields[$key] ?? $key;
$keys[] = "{$field}=:v_{$key}";
}
return implode(",", $keys);
}
}