/** * Método que executa um objeto Update genérico * @param Update $update * @throws SqlException * @return boolean Retorna TRUE em caso de sucesso ou FALSE em caso de erro */ public function updateObj(Update $update) { if (!$update->tabelaIsset()) { $update->setTabela($this->getTabela()); } $prepare = $this->pdo->prepare($update); //Executando a validação do PDO foreach ($update->getSet() as $coluna => $valor) { if (!isset($this->colunas[$coluna])) { //Este trecho deve ser reavaliado pois impede a busca usando como base //colunas de tabelas referenciadas por inner throw new SqlException("Uma das colunas configuradas não existe(update - {$coluna})", 30); } $prepare->bindValue(":{$coluna}", $valor, $this->colunas[$coluna]->getTipo()); } //Executando a validação da clausula where foreach ($update->getWhere()->getColunas() as $coluna => $valor) { if (!isset($this->colunas[$coluna])) { //Este trecho deve ser reavaliado pois impede a busca usando como base //colunas de tabelas referenciadas por inner throw new SqlException("Uma das colunas configuradas não existe(update - {$coluna})", 30); } $prepare->bindValue(":{$coluna}", $valor, $this->colunas[$coluna]->getTipo()); } return $prepare->execute(); }
/** * Método que executa um objeto Update genérico. * * @param Update $update * * @throws SqlException * * @return bool Retorna TRUE em caso de sucesso ou FALSE em caso de erro */ public function updateObj(Update $update) { if (!$update->tabelaIsset()) { $update->setTabela($this->getTabela()); } try { $prepare = $this->pdo->prepare($update); //Executando a validação do PDO foreach ($update->getSet() as $coluna => $valor) { if (!isset($this->colunas[$coluna])) { //Este trecho deve ser reavaliado pois impede a busca usando como base //colunas de tabelas referenciadas por inner throw new SqlException("Uma das colunas configuradas não existe(update - {$coluna})", 30); } $prepare->bindValue(":{$coluna}", $valor, $this->colunas[$coluna]->getTipo()); } //Executando a validação da clausula where $id = false; foreach ($update->getWhere()->getColunas() as $coluna => $valor) { if (!isset($this->colunas[$coluna])) { //Este trecho deve ser reavaliado pois impede a busca usando como base //colunas de tabelas referenciadas por inner throw new SqlException("Uma das colunas configuradas não existe(update - {$coluna})", 30); } $prepare->bindValue(":{$coluna}", $valor, $this->colunas[$coluna]->getTipo()); if (!is_int($id)) { $id = $valor; } } $return = $prepare->execute(); if (is_int($id)) { //Caso os parametros tenha sido validados no where. Pega o primiero e armazena no log //ISSO DEVE SER REFEITO $this->salvarLog(Logs::UPDATE, $id); } } catch (PDOException $exc) { throw new SqlException($exc->getMessage(), $exc->getCode(), $exc->getPrevious()); } return $return; }