code/libraries/joomlatools/library/database/table/abstract.php
public function update(KDatabaseRowInterface $row)
    {
        // Create query object.
        $query = $this->getObject('lib:database.query.update')
            ->table($this->getBase());

        // Create commandchain context.
        $context = $this->getContext();
        $context->table     = $this->getBase();
        $context->data      = $row;
        $context->query     = $query;
        $context->affected  = false;

        if ($this->invokeCommand('before.update', $context) !== false)
        {
            foreach ($this->getPrimaryKey() as $key => $column)
            {
                $context->query->where($column->name . ' = :' . $key)
                    ->bind(array($key => $context->data->$key));
            }

            // Filter the data and remove unwanted columns.
            $data = $this->filter($context->data->getProperties(true));

            foreach ($this->mapColumns($data) as $key => $value) {
                $query->values($key . ' = :_' . $key)->bind(array('_' . $key => $value));
            }

            // Execute the update query.
            $context->affected = $this->getAdapter()->update($context->query);

            // Set the status and data before calling the command chain
            if ($context->affected !== false)
            {
                if ($context->affected) {
                    $context->data->setProperties($this->mapColumns($data, true), true)->setStatus(KDatabase::STATUS_UPDATED);
                } else {
                    $context->data->setStatus(KDatabase::STATUS_FAILED);
                }
            }

            $this->invokeCommand('after.update', $context);
        }

        return $context->affected;
    }
public function update(KDatabaseRowInterface $row)
    {
        // Create query object.
        $query = $this->getObject('lib:database.query.update')
            ->table($this->getBase());

        // Create commandchain context.
        $context = $this->getContext();
        $context->table     = $this->getBase();
        $context->data      = $row;
        $context->query     = $query;
        $context->affected  = false;

        if ($this->invokeCommand('before.update', $context) !== false)
        {
            foreach ($this->getPrimaryKey() as $key => $column)
            {
                $context->query->where($column->name . ' = :' . $key)
                    ->bind(array($key => $context->data->$key));
            }

            // Filter the data and remove unwanted columns.
            $data = $this->filter($context->data->getProperties(true));

            foreach ($this->mapColumns($data) as $key => $value) {
                $query->values($key . ' = :_' . $key)->bind(array('_' . $key => $value));
            }

            // Execute the update query.
            $context->affected = $this->getAdapter()->update($context->query);

            // Set the status and data before calling the command chain
            if ($context->affected !== false)
            {
                if ($context->affected) {
                    $context->data->setProperties($this->mapColumns($data, true), true)->setStatus(KDatabase::STATUS_UPDATED);
                } else {
                    $context->data->setStatus(KDatabase::STATUS_FAILED);
                }
            }

            $this->invokeCommand('after.update', $context);
        }

        return $context->affected;
    }
public function update ( KDatabaseRowInterface $ row ) { // Create query object. $ query = $ this -> getObject ( 'lib:database.query.update' ) -> table ( $ this -> getBase ( ) ) ; // Create commandchain context. $ context = $ this -> getContext ( ) ; $ context -> table = $ this -> getBase ( ) ; $ context -> data = $ row ; $ context -> query = $ query ; $ context -> affected = false ; if ( $ this -> invokeCommand ( 'before.update' , $ context ) !== false ) { foreach ( $ this -> getPrimaryKey ( ) as $ key => $ column ) { $ context -> query -> where ( $ column -> name . ' = :' . $ key ) -> bind ( array ( $ key => $ context -> data -> $ key ) ) ; } // Filter the data and remove unwanted columns. $ data = $ this -> filter ( $ context -> data -> getProperties ( true ) ) ; foreach ( $ this -> mapColumns ( $ data ) as $ key => $ value ) { $ query -> values ( $ key . ' = :_' . $ key ) -> bind ( array ( '_' . $ key => $ value ) ) ; } // Execute the update query. $ context -> affected = $ this -> getAdapter ( ) -> update ( $ context -> query ) ; // Set the status and data before calling the command chain if ( $ context -> affected !== false ) { if ( $ context -> affected ) { $ context -> data -> setProperties ( $ this -> mapColumns ( $ data , true ) , true ) -> setStatus ( KDatabase :: STATUS_UPDATED ) ; } else { $ context -> data -> setStatus ( KDatabase :: STATUS_FAILED ) ; } } $ this -> invokeCommand ( 'after.update' , $ context ) ; } return $ context -> affected ; }
Table update method

@param  KDatabaseRowInterface $row A KDatabaseRow object
@return boolean|integer  Returns the number of rows updated, or FALSE if insert query was not executed.
Table update method