php-sql-query-builder
php-sql-query-builder copied to clipboard
Update doesn't work for '0'-values
$query = $this->builder->update(Mwst::TABLE, [ 'standard' => '0'] );
$query->where()
->notEquals('id', $vat->get('id') )
->eq( 'sid', $this->login->getSID() )
->eq( 'bid', $this->login->getBID() );
// later..
$sql = $this->builder->write( $query );
$data = $this->builder->getValues();
results in a fatal error:
Uncaught NilPortugues\Sql\QueryBuilder\Manipulation\QueryException: No values to update in Update query. in ..../vendor/nilportugues/sql-query-builder/src/Builder/Syntax/UpdateWriter.php:33
Stack trace:
#0 ..../vendor/nilportugues/sql-query-builder/src/Builder/GenericBuilder.php(227): NilPortugues\Sql\QueryBuilder\Builder\Syntax\UpdateWriter->write(Object(NilPortugues\Sql\QueryBuilder\Manipulation\Update))
#1 ..../classes/Repository/AbstractRepository.php(55): NilPortugues\Sql\QueryBuilder\Builder\GenericBuilder->write(Object(NilPortugues\Sql\QueryBuilder\Manipulation\Update))
#2 ..../classes/Repository/MwstRepository.php(73): fotano\Repository\AbstractRepository->doQuery(Object(NilPortugues\Sql\QueryBuilder\Manipulation\Update))
#3 ..../classes/Controller/AdministrationController.php(211): fotano\Repository\MwstRepository->setNewStandard(Obj
in /home/torsten/projects/Phpstorm/fotano/vendor/nilportugues/sql-query-builder/src/Builder/Syntax/UpdateWriter.php on line 33
Also, the documentation says that I should write ...->update()->setTable( ...)->setValues( ...)
but the method setValues()
does not exist.
In class AbstractCreationalQuery you have this method:
public function setValues(array $values)
{
$this->values = \array_filter($values);
return $this;
}
which also removes all elements that have a '0' value.
Yeah, this is strange, I wonder why he's applying that filter.
yeah seems like strange bug. Hope this is fixed @tsillus @marcusirgens , cos this library is good?