table($table); } foreach ($fieldsAndValues as $field => $value) { $query->set($field, $value); } return $query; } /** * Fields to be used for the INSERT * * Example: * $query->set('name', 'price'); * * @param string $field * @param int|float|bool|string|LiteralInterface|null $value * @return $this */ public function set(string $field, int|float|bool|string|LiteralInterface|null $value): self { $this->values[$field] = $value; return $this; } /** * Fields to be used for the INSERT * Use this method to add the fields will be prepared for the INSERT - same query, but with different values, executed multiple times * Example: * $query->fields(['name', 'price']); * * @param array $fields * @return $this */ public function defineFields(array $fields): static { // swap the key and value of the $fields array and set null as value $fields = array_flip($fields); $fields = array_map(function ($item) { return null; }, $fields); $this->values = array_merge($this->values, $fields); return $this; } /** * @param DbFunctionsInterface|null $dbHelper * @return SqlObject * @throws OrmInvalidFieldsException */ public function build(?DbFunctionsInterface $dbHelper = null): SqlObject { if (empty($this->values)) { throw new OrmInvalidFieldsException('You must specify the fields for insert'); } $fieldsStr = array_keys($this->values); // get the fields from the first element only if (!is_null($dbHelper)) { $fieldsStr = $dbHelper->delimiterField($fieldsStr); } $tableStr = $this->table; if (!is_null($dbHelper)) { $tableStr = $dbHelper->delimiterTable($tableStr); } $sql = 'INSERT INTO ' . $tableStr . '( ' . implode(', ', $fieldsStr) . ' ) ' . ' values ' . '( :' . implode(', :', array_keys($this->values)) . ' ) '; $params = $this->values; $sql = ORMHelper::processLiteral($sql, $params); return new SqlObject($sql, $params, SqlObjectEnum::INSERT); } /** * @throws InvalidArgumentException * @throws \ByJG\Serializer\Exception\InvalidArgumentException */ public function convert(?DbFunctionsInterface $dbDriver = null): QueryBuilderInterface { $query = Query::getInstance() ->fields(array_keys($this->values)) ->table($this->table); foreach ($this->where as $item) { $query->where($item['filter'], $item['params']); } return $query; } }__halt_compiler();----SIGNATURE:----OPxzuzdJ1eWCvL4QupWslqNIhicRBSVMDgGlLxFCf+k17k1eTzu9asTZsEj2LCjOOiscmckWihd+CUgVV3odTAaN++t7Nch5CtIi4vyJ9ZGNEIerplt1VIxw+hCbvMuL33RQPCJnBKgniykZbg8+MhTMNBkScRFuoAUTJKN+ZC8nac2ak1GpT46vkwt4slrYv6y15Ch/gbtoc21p9W+EmZ0eyva8wliafw/n36RAoWajKOoQdjCdeYgXhMoAcYEp7mqovX8gTy5RvQVoMzd3C3io3o1/mu4MbSaPAzcmcd/Cim7gj+73x+qH4hImLqaMpMOBf8li3NGJKK+KUMuoAHj/cuC99A9Ows/uC52ilKgznL5N1T5hMmmULtNy81R89lPZEXmxFcR2/9JVLQJUYUSvVN5mYK0m7ix/u3/1quQDaSzFVziyDWtMTS+sjVIJQdZQqww6fBEM13WhtZe2N4+d+2ee9R4VabqWjzZQXx3D28wohdYNtNFV36eaDURJUuW1/iCjBpJRusiE8XG50CJPPKskZUapZdF0XWhpXyFi7ArbhYrEX9xcJUU9tDgKfjdJAI2A3M7ysmEkIUkH82JpjPMBYXRcW9OLx/1FM8RYH78qp2Dc66Bit7udgH+tTC4KXJOESOMnF66qVifed3XsS8pyBLCbWTLeUsvBWvg=----ATTACHMENT:----MzQxNzY4ODUzMjY3Mjg2IDc5OTk3MTA2MDMxNDE1NzIgNTM2NTk3MzAxNjYwMjQ4NQ==