php-sql-query-builder icon indicating copy to clipboard operation
php-sql-query-builder copied to clipboard

Update doesn't work for '0'-values

Open tsillus opened this issue 7 years ago • 3 comments

$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.

tsillus avatar Apr 11 '17 14:04 tsillus

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.

tsillus avatar Apr 11 '17 17:04 tsillus

Yeah, this is strange, I wonder why he's applying that filter.

marcusirgens avatar May 28 '17 17:05 marcusirgens

yeah seems like strange bug. Hope this is fixed @tsillus @marcusirgens , cos this library is good?

marcus-hiles avatar Mar 29 '19 11:03 marcus-hiles