/** * Deleta uma linha de acordo com a PK passada como parâmetro ou configurada anteriormente * no objeto * @param mixed $id * @return int Retorna o número de linhas afetadas pela instrução SQL */ public function delete($id = NULL) { if (is_null($id)) { $id = $this->data[$this->getPrimaryKey()]; } $sql = new SQLDelete(); $sql->setEntity($this->getEntity()); $sql->setCriteria(new SQLFilter($this->getPrimaryKey(), SQLFilter::IS_EQUAL, $id)); $conn = $this->getConnection(); $this->statement = $sql->getStatement(); return $conn->exec($this->statement); }
/** * método delete() * Excluir um conjunto de objetos (collection) da base de dados * através de um critério de seleção. * @param $criteria = objeto do tipo TCriteria */ function delete(SQLExpression $criteria) { // instancia instrução de DELETE $sql = new SQLDelete(); $sql->setEntity(constant($this->class . '::TABLENAME')); // atribui o critério passado como parâmetro $sql->setCriteria($criteria); $this->sql = $sql->getStatement(); // obtém transação ativa 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!!'); } }