Owl/Owl.php
public function Update($model, array $campos = null)
    {
        $this->OpenTransaction();
        
        $data = clone $model;

        if (is_object($data))
            ModelState::ModelTreatment($data);

        $primaryKey = ModelState::GetPrimary($model);
        if($primaryKey == null)
            throw new OwlException("Classe nao contem PK");

        $table = $this->getTableName($data);

        $data = (array)$data;

        $novosDados = NULL;

        if($campos == null)
            $campos = array_keys($data);

        foreach ($campos as $key) {
            $novosDados .= "`$key`=:$key,";
        }

        $novosDados = rtrim($novosDados, ',');

        // Prepara a Query
        $sth = $this->prepare("UPDATE $table SET $novosDados WHERE $primaryKey = '".$model->$primaryKey."'");

        // Define os dados
        foreach ($campos as $key) {
            // Se o tipo do dado for inteiro, usa PDO::PARAM_INT, caso contr�rio, PDO::PARAM_STR
            $tipo = (is_int($model->$key)) ? \PDO::PARAM_INT : \PDO::PARAM_STR;

            // Define o dado
            $sth->bindValue(":$key",$model->$key, $tipo);
        }

        try {
            $sth->execute();
            $model = $this->GetById($table,$model->$primaryKey);
        }catch (\Exception $e){
            echo $e->getMessage();
        }
    }
public function Update($model, array $campos = null)
    {
        $this->OpenTransaction();
        
        $data = clone $model;

        if (is_object($data))
            ModelState::ModelTreatment($data);

        $primaryKey = ModelState::GetPrimary($model);
        if($primaryKey == null)
            throw new OwlException("Classe nao contem PK");

        $table = $this->getTableName($data);

        $data = (array)$data;

        $novosDados = NULL;

        if($campos == null)
            $campos = array_keys($data);

        foreach ($campos as $key) {
            $novosDados .= "`$key`=:$key,";
        }

        $novosDados = rtrim($novosDados, ',');

        // Prepara a Query
        $sth = $this->prepare("UPDATE $table SET $novosDados WHERE $primaryKey = '".$model->$primaryKey."'");

        // Define os dados
        foreach ($campos as $key) {
            // Se o tipo do dado for inteiro, usa PDO::PARAM_INT, caso contr�rio, PDO::PARAM_STR
            $tipo = (is_int($model->$key)) ? \PDO::PARAM_INT : \PDO::PARAM_STR;

            // Define o dado
            $sth->bindValue(":$key",$model->$key, $tipo);
        }

        try {
            $sth->execute();
            $model = $this->GetById($table,$model->$primaryKey);
        }catch (\Exception $e){
            echo $e->getMessage();
        }
    }
public function Update ( $ model , array $ campos = null ) { $ this -> OpenTransaction ( ) ; $ data = clone $ model ; if ( is_object ( $ data ) ) ModelState :: ModelTreatment ( $ data ) ; $ primaryKey = ModelState :: GetPrimary ( $ model ) ; if ( $ primaryKey == null ) throw new OwlException ( "Classe nao contem PK" ) ; $ table = $ this -> getTableName ( $ data ) ; $ data = ( array ) $ data ; $ novosDados = NULL ; if ( $ campos == null ) $ campos = array_keys ( $ data ) ; foreach ( $ campos as $ key ) { $ novosDados .= "`$key`=:$key," ; } $ novosDados = rtrim ( $ novosDados , ',' ) ; // Prepara a Query $ sth = $ this -> prepare ( "UPDATE $table SET $novosDados WHERE $primaryKey = '" . $ model -> $ primaryKey . "'" ) ; // Define os dados foreach ( $ campos as $ key ) { // Se o tipo do dado for inteiro, usa PDO::PARAM_INT, caso contr�rio, PDO::PARAM_STR $ tipo = ( is_int ( $ model -> $ key ) ) ? \ PDO :: PARAM_INT : \ PDO :: PARAM_STR ; // Define o dado $ sth -> bindValue ( ":$key" , $ model -> $ key , $ tipo ) ; } try { $ sth -> execute ( ) ; $ model = $ this -> GetById ( $ table , $ model -> $ primaryKey ) ; } catch ( \ Exception $ e ) { echo $ e -> getMessage ( ) ; } }
Atualiza os dados no banco atraves de uma model mapeada
@param $model Objeto que contem os dados
@param $campos Seleciona os campos que quer atulizar passando por array, caso seja nulo serão atualizados todos os campos
Atualiza os dados no banco atraves de uma model mapeada