/** * deleta uma linha da tabela a partir de uma instancia do modelo * * <b>Exemplo de uso:</b> * * $model = new Model( 5 );<br> * $model->delete(); <br> * // apaga o registro 5 da tabela Model * * @return boolean * @throws Exception */ public function delete() { if (!$this->recordEnabled) { if (DEBUG_MODE) { new DebugMsg(__('Você não pode tentar deletar um modelo através de uma View.'), 1); } return; } $db = new MysqlDB(); $pk = $this::PK; $table = $this::TABLE; $id = $this->{$pk}; $db->query("DELETE FROM {$table} WHERE {$pk} = :id"); $db->bind(':id', $id); $result = $db->execute(); if (!$result) { throw new Exception(__('Não foi possível excluir o registro %d', $id), 3); } return $result; }
/** * Execulta uma consulta direta ao baco de dados, sem o uso de Models. * Evite o uso abusivo desta função; * * Exemplo 1: consulta personalizada que <b>retorna um array de objetos standard:</b> * $resultados = $this->query('SELECT campo1, campo2 FROM foo LEFT JOIN bar ON foo.id = bar.id'); * * Exemplo 2: consulta personalizada que <b>retorna um array de objetos standard:</b> * $resultados = $this->query('SHOW TABLES'); * * Exemplo 3: apaga dados de uma tabela <b>retorna true ou false</b> * $resultados = $this->query('DELETE FROM foo WHERE id = 2'); * * @param String $sqlQuery * @return boolean ou array de objetos */ protected function query($sqlQuery) { $db = new MysqlDB(); $db->query($sqlQuery); $command = strtolower(strtok($sqlQuery, ' ')); if ($command == 'select' || $command == 'show' || $command == 'describe') { return $db->getResults(); } else { return $db->execute(); } }