Пример #1
0
 /**
  * método update()
  * Atualiza registros de um repositório de acordo com o parâmetro critéria passado
  * a partir de um array associativo de nome de colunas e os valores que devem
  * receber
  * @param SQLExpression $criteria
  * @param array $columns Array associativo com o nome da coluna e seus valores
  * @return int $num Valores de linhas afetadas pela instrução 
  */
 public function update(SQLExpression $criteria, $columns = [])
 {
     $sql = new SQLUpdate();
     $sql->setEntity(constant($this->class . '::TABLENAME'));
     $sql->setCriteria($criteria);
     //verifica se foi passado um array com a coluna e o valor a ser definido
     if (count($columns) > 0) {
         //define as colunas e valores a serem atualizados
         foreach ($columns as $key => $value) {
             $sql->setRowData($key, $value);
         }
         if ($conn = Connection::get()) {
             $result = $conn->exec($sql->getStatement());
             return $result;
         } else {
             // se não tiver transação, retorna uma exceção
             throw new Exception('Não há transação ativa!!');
         }
     } else {
         throw new Exception('Não foram definidas as colunas para atualização.');
     }
 }