src/xPDO/xPDO.php
public function updateCollection($className, array $set, $criteria= null) {
        $affected = false;
        if ($this->getConnection(array(xPDO::OPT_CONN_MUTABLE => true))) {
            $query = $this->newQuery($className);
            if ($query && !empty($set)) {
                $query->command('UPDATE');
                $query->set($set);
                if (!empty($criteria)) $query->where($criteria);
                if ($query->prepare()) {
                    $affected = $this->exec($query->toSQL());
                    if ($affected === false) {
                        $this->log(xPDO::LOG_LEVEL_ERROR, "Error updating {$className} instances using query " . $query->toSQL(), '', __METHOD__, __FILE__, __LINE__);
                    } else {
                        if ($this->getOption(xPDO::OPT_CACHE_DB)) {
                            $relatedClasses = array($query->getTableClass());
                            $related = array_merge($this->getAggregates($className), $this->getComposites($className));
                            foreach ($related as $relatedAlias => $relatedMeta) {
                                $relatedClasses[] = $relatedMeta['class'];
                            }
                            $relatedClasses = array_unique($relatedClasses);
                            foreach ($relatedClasses as $relatedClass) {
                                $this->cacheManager->delete($relatedClass, array(
                                    xPDO::OPT_CACHE_KEY => $this->getOption('cache_db_key', null, 'db'),
                                    xPDO::OPT_CACHE_HANDLER => $this->getOption(xPDO::OPT_CACHE_DB_HANDLER, null, $this->getOption(xPDO::OPT_CACHE_HANDLER, null, 'xPDO\\Cache\\xPDOFileCache')),
                                    xPDO::OPT_CACHE_FORMAT => (integer) $this->getOption('cache_db_format', null, $this->getOption(xPDO::OPT_CACHE_FORMAT, null, Cache\xPDOCacheManager::CACHE_PHP)),
                                    xPDO::OPT_CACHE_PREFIX => $this->getOption('cache_db_prefix', null, Cache\xPDOCacheManager::CACHE_DIR),
                                    'multiple_object_delete' => true
                                ));
                            }
                        }
                        $callback = $this->getOption(xPDO::OPT_CALLBACK_ON_SAVE);
                        if ($callback && is_callable($callback)) {
                            call_user_func($callback, array('className' => $className, 'criteria' => $query, 'object' => null));
                        }
                    }
                }
            }
        } else {
            $this->log(xPDO::LOG_LEVEL_ERROR, "Could not get connection for writing data", '', __METHOD__, __FILE__, __LINE__);
        }
        return $affected;
    }
public function updateCollection($className, array $set, $criteria= null) {
        $affected = false;
        if ($this->getConnection(array(xPDO::OPT_CONN_MUTABLE => true))) {
            $query = $this->newQuery($className);
            if ($query && !empty($set)) {
                $query->command('UPDATE');
                $query->set($set);
                if (!empty($criteria)) $query->where($criteria);
                if ($query->prepare()) {
                    $affected = $this->exec($query->toSQL());
                    if ($affected === false) {
                        $this->log(xPDO::LOG_LEVEL_ERROR, "Error updating {$className} instances using query " . $query->toSQL(), '', __METHOD__, __FILE__, __LINE__);
                    } else {
                        if ($this->getOption(xPDO::OPT_CACHE_DB)) {
                            $relatedClasses = array($query->getTableClass());
                            $related = array_merge($this->getAggregates($className), $this->getComposites($className));
                            foreach ($related as $relatedAlias => $relatedMeta) {
                                $relatedClasses[] = $relatedMeta['class'];
                            }
                            $relatedClasses = array_unique($relatedClasses);
                            foreach ($relatedClasses as $relatedClass) {
                                $this->cacheManager->delete($relatedClass, array(
                                    xPDO::OPT_CACHE_KEY => $this->getOption('cache_db_key', null, 'db'),
                                    xPDO::OPT_CACHE_HANDLER => $this->getOption(xPDO::OPT_CACHE_DB_HANDLER, null, $this->getOption(xPDO::OPT_CACHE_HANDLER, null, 'xPDO\\Cache\\xPDOFileCache')),
                                    xPDO::OPT_CACHE_FORMAT => (integer) $this->getOption('cache_db_format', null, $this->getOption(xPDO::OPT_CACHE_FORMAT, null, Cache\xPDOCacheManager::CACHE_PHP)),
                                    xPDO::OPT_CACHE_PREFIX => $this->getOption('cache_db_prefix', null, Cache\xPDOCacheManager::CACHE_DIR),
                                    'multiple_object_delete' => true
                                ));
                            }
                        }
                        $callback = $this->getOption(xPDO::OPT_CALLBACK_ON_SAVE);
                        if ($callback && is_callable($callback)) {
                            call_user_func($callback, array('className' => $className, 'criteria' => $query, 'object' => null));
                        }
                    }
                }
            }
        } else {
            $this->log(xPDO::LOG_LEVEL_ERROR, "Could not get connection for writing data", '', __METHOD__, __FILE__, __LINE__);
        }
        return $affected;
    }
public function updateCollection ( $ className , array $ set , $ criteria = null ) { $ affected = false ; if ( $ this -> getConnection ( array ( xPDO :: OPT_CONN_MUTABLE => true ) ) ) { $ query = $ this -> newQuery ( $ className ) ; if ( $ query && ! empty ( $ set ) ) { $ query -> command ( 'UPDATE' ) ; $ query -> set ( $ set ) ; if ( ! empty ( $ criteria ) ) $ query -> where ( $ criteria ) ; if ( $ query -> prepare ( ) ) { $ affected = $ this -> exec ( $ query -> toSQL ( ) ) ; if ( $ affected === false ) { $ this -> log ( xPDO :: LOG_LEVEL_ERROR , "Error updating {$className} instances using query " . $ query -> toSQL ( ) , '' , __METHOD__ , __FILE__ , __LINE__ ) ; } else { if ( $ this -> getOption ( xPDO :: OPT_CACHE_DB ) ) { $ relatedClasses = array ( $ query -> getTableClass ( ) ) ; $ related = array_merge ( $ this -> getAggregates ( $ className ) , $ this -> getComposites ( $ className ) ) ; foreach ( $ related as $ relatedAlias => $ relatedMeta ) { $ relatedClasses [ ] = $ relatedMeta [ 'class' ] ; } $ relatedClasses = array_unique ( $ relatedClasses ) ; foreach ( $ relatedClasses as $ relatedClass ) { $ this -> cacheManager -> delete ( $ relatedClass , array ( xPDO :: OPT_CACHE_KEY => $ this -> getOption ( 'cache_db_key' , null , 'db' ) , xPDO :: OPT_CACHE_HANDLER => $ this -> getOption ( xPDO :: OPT_CACHE_DB_HANDLER , null , $ this -> getOption ( xPDO :: OPT_CACHE_HANDLER , null , 'xPDO\\Cache\\xPDOFileCache' ) ) , xPDO :: OPT_CACHE_FORMAT => ( integer ) $ this -> getOption ( 'cache_db_format' , null , $ this -> getOption ( xPDO :: OPT_CACHE_FORMAT , null , Cache \ xPDOCacheManager :: CACHE_PHP ) ) , xPDO :: OPT_CACHE_PREFIX => $ this -> getOption ( 'cache_db_prefix' , null , Cache \ xPDOCacheManager :: CACHE_DIR ) , 'multiple_object_delete' => true ) ) ; } } $ callback = $ this -> getOption ( xPDO :: OPT_CALLBACK_ON_SAVE ) ; if ( $ callback && is_callable ( $ callback ) ) { call_user_func ( $ callback , array ( 'className' => $ className , 'criteria' => $ query , 'object' => null ) ) ; } } } } } else { $ this -> log ( xPDO :: LOG_LEVEL_ERROR , "Could not get connection for writing data" , '' , __METHOD__ , __FILE__ , __LINE__ ) ; } return $ affected ; }
Update field values across a collection of xPDOObjects.

@param string $className Name of the class to update fields of.
@param array $set An associative array of field/value pairs representing the updates to make.
@param mixed $criteria An xPDOCriteria object or representation.
@return bool|int The number of instances affected by the update or false on failure.
Update field values across a collection of xPDOObjects .