示例#1
0
 /**
  * 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();
     }
 }