public function getSocial() { //RECUPERA CONEXAO BANCO DE DADOS TTransaction::open('my_bd_site'); //TABELA exposition_gallery $criteria = new TCriteria(); $criteria->setProperty('order', 'nome ASC'); // instancia a instrução de SELECT $sql = new TSqlSelect(); $sql->addColumn('*'); $sql->setEntity('social'); // atribui o critério passado como parâmetro $sql->setCriteria($criteria); // obtém transação ativa if ($conn = TTransaction::get()) { // registra mensagem de log TTransaction::log($sql->getInstruction()); // executa a consulta no banco de dados $result = $conn->Query($sql->getInstruction()); $this->results = array(); if ($result) { // percorre os resultados da consulta, retornando um objeto while ($row = $result->fetchObject()) { // armazena no array $this->results; $this->results[] = $row; } } } TTransaction::close(); return $this->results; }
public static function run() { self::$time_start = microtime(true); $log_msg = ""; // TODO: Substituir por $_POST if (isset($_GET['class'])) { $class_name = $_GET['class']; if (class_exists($class_name)) { try { /** @var SimpleAction $action */ $action = new $class_name(); $result = $action->run(); self::$result = array_merge(self::$result, $result); TTransaction::close(); } catch (PDOException $pdo_e) { // Grava a excessão que ocorreu. $log_msg = $pdo_e->getMessage(); switch ($pdo_e->errorInfo[1]) { case 1062: case 1452: self::$result["error"] = $pdo_e->errorInfo[1]; break; default: self::$result["error"] = 101; } TTransaction::rollback(); } catch (Exception $e) { // Grava a excessão que ocorreu. $log_msg = $e->getMessage(); self::$result["error"] = 1; TTransaction::rollback(); } } else { self::$result["error"] = 2; } if (self::$result["msg"] == null) { self::$result["msg"] = Tools::get_error_msg(self::$result["error"]); } $log_msg = $log_msg ? $log_msg : self::$result["msg"]; if (isset(self::$result["error"]) && self::$result["error"] != 0) { TTransaction::log($log_msg, 'error'); } self::addCurrentTime('Fim de chamada'); self::$result['time'] = self::$times; echo json_encode(self::$result); } }
function count(TCriteria $criteria) { $sql = new TSqlSelect(); $sql->addColumn(' count(*) '); $sql->setEntity(constant($this->class . '::TABLENAME')); $sql->setCriteria($criteria); if ($conn = TTransaction::get()) { TTransaction::log($sql->getInstruction()); $result = $conn->query($sql->getInstruction()); if ($result) { $row = $result->fetch(); } return $row[0]; } else { throw new Exception('Não há transação ativa!'); } }
public function __construct() { parent::__construct(); try { TTransaction::open('samples'); // abre uma transação // define o log TTransaction::setLogger(new TLoggerTXT('/tmp/log.txt')); TTransaction::log("** inserindo cidade"); $cidade = new City(); // cria novo objeto $cidade->name = 'Porto Alegre'; $cidade->store(); // armazena o objeto new TMessage('info', 'Objeto armazenado com sucesso'); TTransaction::close(); // fecha a transação. } catch (Exception $e) { new TMessage('error', $e->getMessage()); } }
public function __construct() { parent::__construct(); try { TTransaction::open('samples'); // open transaction // define log TTransaction::setLogger(new TLoggerTXT('/tmp/log.txt')); TTransaction::log("** inserting city"); $cidade = new City(); // create new object $cidade->name = 'Porto Alegre'; $cidade->store(); // store the object new TMessage('info', 'Objeto stored successfully'); TTransaction::close(); // close transaction } catch (Exception $e) { new TMessage('error', $e->getMessage()); } }
public function action() { parent::get_input('mailTo'); //SMTP needs accurate times, and the PHP time zone MUST be set //This should be done in your php.ini, but this is how to do it if you don't have access to that date_default_timezone_set('Etc/UTC'); //Create a new PHPMailer instance $mail = new PHPMailer(); $this->setupDebug($mail); //$mail->isMail(); //$this->setupSendMail($mail); $this->setupSMTP($mail); //Set who the message is to be sent from $mail->setFrom(parent::get_input('from_mail'), parent::get_input('from_name')); //Set who the message is to be sent to $mail->addAddress(parent::get_input('to_mail'), parent::get_input('to_name')); //Set an alternative reply-to address $mail->addReplyTo(parent::get_input('reply_mail'), parent::get_input('reply_name')); //Set the subject line $mail->Subject = parent::get_input('subject'); //Read an HTML message body from an external file, convert referenced images to embedded, //convert HTML into a basic plain-text alternative body $mail->msgHTML(parent::get_input('body')); //Replace the plain text body with one created manually $mail->AltBody = parent::get_input('alt_body'); //Attach an image file //$mail->addAttachment('images/phpmailer_mini.gif'); //send the message, check for errors if (!$mail->send()) { TTransaction::log($mail->ErrorInfo); parent::set_error(1, "Mensagem não enviada!"); } else { parent::set_result('Enviado', date('d.m.Y H:i:sy')); } return parent::get_result(); }
$criteria = new TCriteria(); $criteria->add(new TFilter('turno', '=', 'T')); // instancia repositório de Turmas $repository = new TRepository('Turma'); // retorna todos objetos que satisfazem o critério $turmas = $repository->load($criteria); // verifica se retornou alguma turma if ($turmas) { // percorre todas turmas retornadas foreach ($turmas as $turma) { // exclui a turma $turma->delete(); } } // segundo exemplo, exclui as inscrições do aluno "1" TTransaction::log("** exclui as inscrições do aluno '1'"); // instancia critério de seleção de dados ref_aluno ='1' $criteria = new TCriteria(); $criteria->add(new TFilter('ref_aluno', '=', 1)); // instancia repositório de Inscrição $repository = new TRepository('Inscricao'); // exclui todos objetos que satisfaçam este critério de seleção $repository->delete($criteria); echo "registros excluídos com sucesso <br>\n"; // finaliza a transação TTransaction::close(); } catch (Exception $e) { // exibe a mensagem gerada pela exceção echo '<b>Erro</b>' . $e->getMessage(); // desfaz todas alterações no banco de dados TTransaction::rollback();
$daline->nome = 'Daline Dall Oglio'; $daline->endereco = 'Rua da Conceição'; $daline->telefone = '(51) 1111-2222'; $daline->cidade = 'Cruzeiro do Sul'; $daline->store(); // armazena o objeto // instancia um novo objeto Aluno $william = new Aluno(); $william->nome = 'William Scatolla'; $william->endereco = 'Rua de Fátima'; $william->telefone = '(51) 1111-4444'; $william->cidade = 'Encantado'; $william->store(); // armazena o objeto // armazena esta frase no arquivo de LOG TTransaction::log("** inserindo cursos"); // instancia um novo objeto Curso $curso = new Curso(); $curso->descricao = 'Orientação a Objetos com PHP'; $curso->duracao = 24; $curso->store(); // armazena o objeto // instancia um novo objeto Curso $curso = new Curso(); $curso->descricao = 'Desenvolvendo em PHP-GTK'; $curso->duracao = 32; $curso->store(); // armazena o objeto // finaliza a transação TTransaction::close(); echo "Registros inseridos com Sucesso<br>\n";
//Escreva Mensagem de LOG TTransaction::log("Inserindo Registo Martins Isata"); //Criar uma instrução INSERT $sql = new TSqlInsert(); $sql->setEntity(' famosos '); $sql->setRowData(' codigo ', 3); $sql->setRowData(' nome ', 'Martins Isata'); //Obtêm a conexão activa $conn = TTransaction::get(); $result = $conn->Query($sql->getInstruction()); //Escreve a mensagem TTransaction::log($sql->getInstruction()); //Definir a Etrstegia de LOG TTransaction::setLogger(new TLoggerXML('C:\\Apache24\\htdocs\\programandoComOO\\tmp\\arquivo.xml')); //Escreve a Mensagem de LOG TTransaction::log("Inserindo Registo de Nerilia Tavares"); //Criar uma instrução INSERT $sql = new TSqlInsert(); $sql->setEntity('famosos'); $sql->setRowData(' codigo ', 4); $sql->setRowData(' nome ', ' Nerilia Tavares '); //Obter a conexão activa $conn = TTransaction::get(); $result = $conn->Query($sql->getInstruction()); //fecha a Transação aplicado todas as operações TTransaction::close(); } catch (Exception $e) { // Exibe a mensagem de erro echo $e->getMessage(); //desfazer operações realizadas pela transação TTransaction::rollback();
TTransaction::setLogger(new TLoggerTXT('/tmp/log10.txt')); // armazena esta frase no arquivo de LOG TTransaction::log("** inserindo turma 1"); // instancia um novo objeto Turma $turma = new Turma(); $turma->dia_semana = 1; $turma->turno = 'M'; $turma->professor = 'Carlo Bellini'; $turma->sala = '100'; $turma->data_inicio = '2002-09-01'; $turma->encerrada = FALSE; $turma->ref_curso = 2; $turma->store(); // armazena o objeto // armazena esta frase no arquivo de LOG TTransaction::log("** inserindo turma 2"); $turma = new Turma(); $turma->dia_semana = 'Segunda'; $turma->turno = 'Manhã'; $turma->professor = 'Sérgio Crespo'; $turma->sala = '200'; $turma->data_inicio = '2004-09-01'; $turma->encerrada = FALSE; $turma->ref_curso = 3; $turma->store(); // armazena o objeto // finaliza a transação TTransaction::close(); echo "Registros inseridos com Sucesso<br>\n"; } catch (Exception $e) { // exibe a mensagem gerada pela exceção
private function getLast() { if ($conn = TTransaction::get()) { // cria instrução SQL $sql = new TSqlSelect(); $sql->addColumn('max(ID) as ID'); $sql->setEntity($this->getEntity()); TTransaction::log($sql->getInstruction()); $result = $conn->query($sql->getInstruction()); $row = $result->fetch(); return $row[0]; } else { throw new Exception('Não há transação ativa'); } }
// obtém o Aluno de ID 1 $aluno = $record->load(1); if ($aluno) { // altera o telefone $aluno->telefone = '(51) 1111-3333'; TTransaction::log("** persistindo o aluno 1"); // armazena o objeto $aluno->store(); } TTransaction::log("** obtendo o curso 1"); // instancia registro de Curso $record = new Curso(); // obtém o Curso de ID 1 $curso = $record->load(1); if ($curso) { // altera a duração $curso->duracao = 28; TTransaction::log("** persistindo o curso 1"); // armazena o objeto $curso->store(); } // finaliza a transação TTransaction::close(); // exibe mensagem de sucesso echo "Registros alterados com sucesso<br>\n"; } catch (Exception $e) { // exibe a mensagem gerada pela exceção echo '<b>Erro</b>' . $e->getMessage(); // desfaz todas alterações no banco de dados TTransaction::rollback(); }
/** * Return the amount of objects that satisfy a given criteria * @param $criteria An TCriteria object, specifiyng the filters * @return An Integer containing the amount of objects that satisfy the criteria */ public function count(TCriteria $criteria = NULL) { if (!$criteria) { $criteria = isset($this->criteria) ? $this->criteria : new TCriteria(); } // creates a SELECT statement $sql = new TSqlSelect(); $sql->addColumn('count(*)'); $sql->setEntity($this->getEntity()); // assign the criteria to the SELECT statement $sql->setCriteria($criteria); // get the connection of the active transaction if ($conn = TTransaction::get()) { // register the operation in the LOG file TTransaction::log($sql->getInstruction()); // executes the SELECT statement $result = $conn->Query($sql->getInstruction()); if ($result) { $row = $result->fetch(); } // returns the result return $row[0]; } else { // if there's no active transaction opened throw new Exception(TAdiantiCoreTranslator::translate('No active transactions') . ': ' . __METHOD__ . ' ' . $this->getEntity()); } }
/** Prepara e executa uma query na conexão atual * @param $query string * @param $params array * @param bool $types * @return bool|PDOStatement * @throws Exception */ public static function safe_execute($query, $params = null, $types = false) { if (self::$conn) { try { // Salva a query que será executada TTransaction::log($query, $params); $statement = self::$conn->prepare($query); if ($params != null) { if (is_array($params[0])) { foreach ($params as $sub_params) { self::bindArrayValue($statement, $sub_params, $types); } } else { self::bindArrayValue($statement, $params, $types); } } return $statement->execute() ? $statement : false; } catch (Exception $e) { throw $e; } } return false; }
// inicia transação com o banco 'pg_livro' TTransaction::open('pg_livro'); // define o arquivo para LOG TTransaction::setLogger(new TLoggerTXT('/tmp/log11.txt')); // armazena esta frase no arquivo de LOG TTransaction::log("** obtendo o aluno de uma inscrição"); // instancia a Inscrição cujo ID é "2" $inscricao = new Inscricao(2); // exibe os dados relacionados de aluno (associação) echo "Dados da inscrição<br>\n"; echo "==================<br>\n"; echo 'Nome : ' . $inscricao->aluno->nome . "<br>\n"; echo 'Endereço : ' . $inscricao->aluno->endereco . "<br>\n"; echo 'Cidade : ' . $inscricao->aluno->cidade . "<br>\n"; // armazena esta frase no arquivo de LOG TTransaction::log("** obtendo as inscrições de um aluno"); // instancia o Aluno cujo ID é "2" $aluno = new Aluno(2); echo "<br>\n"; echo "Inscrições do Aluno<br>\n"; echo "===================<br>\n"; // exibe os dados relacionados de inscrições (agregação) foreach ($aluno->inscricoes as $inscricao) { echo ' ID : ' . $inscricao->id; echo ' Turma : ' . $inscricao->ref_turma; echo ' Nota : ' . $inscricao->nota; echo ' Freq. : ' . $inscricao->frequencia; echo "<br>\n"; } // finaliza a transação TTransaction::close();
function count(TCriteria $criteria) { // instancia instrução de SELECT $sql = new TSqlSelect(); $sql->addColumn('count(*)'); $sql->setEntity(constant($this->class . '::TABLENAME')); // atribui o critério passado como parâmetro $sql->setCriteria($criteria); // obtém transação ativa if ($conn = TTransaction::get()) { // registra mensagem de log TTransaction::log($sql->getInstruction()); // executa instrução de SELECT $result = $conn->Query($sql->getInstruction()); if ($result) { $row = $result->fetch(); } // retorna o resultado return $row[0]; } else { // se não tiver transação, retorna uma exceção throw new Exception('Não há transação ativa!!'); } }
/** @param $params bool|array|null */ public function __construct($params = null) { if ($params === 'SKIP') { return 'SKIPPED'; } if ($this->get_error() != 0) { return 'ERROR'; } $this->is_called_within = $params != null; TTransaction::open("my_db"); TTransaction::setLogger(new TLoggerTXT(get_class($this))); // Se houver parâmetros no construtor, trabalha com eles, caso contrário, utiliza o _POST if (!$this->is_called_within) { $params = $_GET; /// TODO: substituir por _POST após a fase de testes } // Se entre os parâmetros todas as entradas existirem, guarda os parâmetros, caso contrário há um erro $missing_input = array_diff_key($this->input_vars, $params); if (count($missing_input) == 0) { // Carrega os parâmetros padrão foreach (array_keys($this->input_vars) as $var_name) { $this->set_input($var_name, $params[$var_name]); } // Se foi chamado internamente, carrega os paramêtros não-padrão if ($this->is_called_within) { foreach (array_diff_key($params, $this->input_vars) as $var_name) { $this->set_input($var_name, $params[$var_name]); } } } else { $this->set_error(100); // Grava a entrada que faltou. TTransaction::log(Tools::get_error_msg($this->get_error()), $missing_input, 'error'); } return 0; }
// define o arquivo para LOG TTransaction::setLogger(new TLoggerTXT('/tmp/log8.txt')); // primeiro exemplo, conta todos alunos de Porto Alegre # TTransaction::log("** Conta Alunos de Porto Alegre"); // instancia um critério de seleção $criteria = new TCriteria(); $criteria->add(new TFilter('cidade', '=', 'Porto Alegre')); // instancia um reposotório de Alunos $repository = new TRepository('Aluno'); // obtém o total de alunos que satisfazem o critério $count = $repository->count($criteria); // exibe o total na tela echo "Total de alunos de Porto Alegre: {$count} <br>\n"; // segundo exemplo, Contar todas as turmas com aula na sala // "100" no turno da Tarde OU na "200" pelo turno da manha. TTransaction::log("** Conta Turmas"); // instancia um critério de seleção // sala "100" e turno "T" (tarde) $criteria1 = new TCriteria(); $criteria1->add(new TFilter('sala', '=', '100')); $criteria1->add(new TFilter('turno', '=', 'T')); // instancia um critério de seleção // sala "200" e turno "M" (manha) $criteria2 = new TCriteria(); $criteria2->add(new TFilter('sala', '=', '200')); $criteria2->add(new TFilter('turno', '=', 'M')); // instancia um critério de seleção // com OU para juntar os critérios anteriores $criteria = new TCriteria(); $criteria->add($criteria1, TExpression::OR_OPERATOR); $criteria->add($criteria2, TExpression::OR_OPERATOR);
TTransaction::open('pg_livro'); // define o arquivo para LOG TTransaction::setLogger(new TLoggerTXT('/tmp/log7.txt')); TTransaction::log("** seleciona inscrições da turma 2"); // instancia critério de seleção de dados // seleciona todas inscrições da turma "2" $criteria = new TCriteria(); $criteria->add(new TFilter('ref_turma', '=', 2)); $criteria->add(new TFilter('cancelada', '=', FALSE)); // instancia repositório de Inscrição $repository = new TRepository('Inscricao'); // retorna todos objetos que satisfazem o critério $inscricoes = $repository->load($criteria); // verifica se retornou alguma inscrição if ($inscricoes) { TTransaction::log("** altera as inscrições"); // percorre todas inscrições retornadas foreach ($inscricoes as $inscricao) { // altera algumas propriedades $inscricao->nota = 8; $inscricao->frequencia = 75; // armazena o objeto no banco de dados $inscricao->store(); } } // finaliza a transação TTransaction::close(); } catch (Exception $e) { // exibe a mensagem gerada pela exceção echo '<b>Erro</b>' . $e->getMessage(); // desfaz todas alterações no banco de dados
private function getLast() { // inicia transação if ($conn = TTransaction::get()) { // instancia instrução de SELECT $sql = new TSqlSelect(); $sql->addColumn('max(ID) as ID'); $sql->setEntity($this->getEntity()); // cria log e executa instrução SQL TTransaction::log($sql->getInstruction()); $result = $conn->Query($sql->getInstruction()); // retorna os dados do banco $row = $result->fetch(); return $row[0]; } else { // se não tiver transação, retorna uma exceção throw new Exception('Não há transação ativa!!'); } }
$fabio = new Aluno(); // define algumas propriedades $fabio->nome = 'Fábio Locatelli'; $fabio->endereco = 'Rua Merlin'; $fabio->telefone = '(51) 2222-1111'; $fabio->cidade = 'Lajeado'; // clona o objeto $fabio $julia = clone $fabio; // altera algumas propriedades $julia->nome = 'Júlia Haubert'; $julia->telefone = '(51) 2222-2222'; try { // inicia transação com o banco 'pg_livro' TTransaction::open('pg_livro'); // define o arquivo para LOG TTransaction::setLogger(new TLoggerTXT('/tmp/log4.txt')); // armazena o objeto $fabio TTransaction::log("** persistindo o aluno \$fabio"); $fabio->store(); // armazena o objeto $julia TTransaction::log("** persistindo o aluno \$julia"); $julia->store(); // finaliza a transação TTransaction::close(); echo "clonagem realizada com sucesso <br>\n"; } catch (Exception $e) { // exibe a mensagem gerada pela exceção echo '<b>Erro</b>' . $e->getMessage(); // desfaz todas alterações no banco de dados TTransaction::rollback(); }
/** * Returns the LAST Object ID from database * @return An Integer containing the LAST Object ID from database * @exception Exception if there's no active transaction opened */ private function getLast() { $pk = $this->getPrimaryKey(); // get the connection of the active transaction if ($conn = TTransaction::get()) { // instancia instrução de SELECT $sql = new TSqlSelect(); $sql->addColumn("max({$pk}) as {$pk}"); $sql->setEntity($this->getEntity()); // register the operation in the LOG file TTransaction::log($sql->getInstruction()); $result = $conn->Query($sql->getInstruction()); // retorna os dados do banco $row = $result->fetch(); return $row[0]; } else { // if there's no active transaction opened throw new Exception(TAdiantiCoreTranslator::translate('No active transactions') . ': ' . __METHOD__ . ' ' . $this->getEntity()); } }
const TABLENAME = 'inscricao'; } // insere novos objetos no banco de dados try { // inicia transação com o banco 'pg_livro' TTransaction::open('pg_livro'); // define o arquivo para LOG TTransaction::setLogger(new TLoggerTXT('/tmp/log12.txt')); // armazena esta frase no arquivo de LOG TTransaction::log("** inserindo o aluno \$carlos"); // instancia um aluno novo $carlos = new Aluno(); $carlos->nome = "Carlos Ranzi"; $carlos->endereco = "Rua Francisco Oscar"; $carlos->telefone = "(51) 1234-5678"; $carlos->cidade = "Lajeado"; // persiste o objeto aluno $carlos->store(); // armazena esta frase no arquivo de LOG TTransaction::log("** inscrevendo o aluno nas turmas"); // executa o método Inscrever (na turma 1 e 2) $carlos->Inscrever(1); $carlos->Inscrever(2); // finaliza a transação TTransaction::close(); } catch (Exception $e) { // exibe a mensagem gerada pela exceção echo '<b>Erro</b>' . $e->getMessage(); // desfaz todas alterações no banco de dados TTransaction::rollback(); }
// obtém a conexão ativa $conn = TTransaction::get(); // executa a instrução SQL $result = $conn->Query($sql->getInstruction()); // escreve mensagem de LOG TTransaction::log($sql->getInstruction()); // define a estratégia de LOG TTransaction::setLogger(new TLoggerXML('/tmp/arquivo.xml')); // escreve mensagem de LOG TTransaction::log("Inserindo registro Albert Einstein"); // cria uma instrução de INSERT $sql = new TSqlInsert(); // define o nome da entidade $sql->setEntity('famosos'); // atribui o valor de cada coluna $sql->setRowData('codigo', 10); $sql->setRowData('nome', 'Albert Einstein'); // obtém a conexão ativa $conn = TTransaction::get(); // executa a instrução SQL $result = $conn->Query($sql->getInstruction()); // escreve mensagem de LOG TTransaction::log($sql->getInstruction()); // fecha a transação, aplicando todas as operações TTransaction::close(); } catch (Exception $e) { // exibe a mensagem de erro echo $e->getMessage(); // desfaz operações realizadas durante a transação TTransaction::rollback(); }
class Curso extends TRecord { const TABLENAME = 'curso'; } // exclui objetos da base de dados try { // inicia transação com o banco 'pg_livro' TTransaction::open('pg_livro'); // define o arquivo para LOG TTransaction::setLogger(new TLoggerTXT('/tmp/log5.txt')); // armazena esta frase no arquivo de LOG TTransaction::log("** Apagando da primeira forma"); // carrrega o objeto $aluno = new Aluno(1); // delete o objeto $aluno->delete(); // armazena esta frase no arquivo de LOG TTransaction::log("** Apagando da segunda forma"); // instancia o modelo $modelo = new Aluno(); // delete o objeto $modelo->delete(2); // finaliza a transação TTransaction::close(); echo "Exclusão realizada com sucesso <br>\n"; } catch (Exception $e) { // exibe a mensagem gerada pela exceção echo '<b>Erro</b>' . $e->getMessage(); // desfaz todas alterações no banco de dados TTransaction::rollback(); }