public function selectPdo($query) { $auxiliar = $this->_db->query($query); try { $this->_db->beginTransaction(); $result = $auxiliar->fetchAll(); $this->_db->commit(); } catch (Exception $e) { $this->_db - rollBack(); echo "Error :: " . $e->getMessage(); exit; } return $result; }
function transferir($idOrigem, $cadastroOrigem, $valor, $idDestino, $cadastroDestino) { if ($this->isPessoaJuridica($cadastroDestino)) { try { beginTransaction(); $ps = $this->executar('SELECT * FROM conta WHERE id_conta = ?', array($idOrigem)); $p = $ps->fetchObject(); if ($p->saldo < $valor) { rollBack(); throw new TransferenciaException('Saldo da conta de origem insuficiente'); } $ps = $this->executar('UPDATE conta SET saldo = saldo - ? WHERE id_conta = ?', array($valor, $idOrigem)); $valorDoisPorCento = $valor * 0.02; $valorNovo = $valor - $valor * 0.02; $ps = $this->executar('UPDATE conta SET saldo = saldo + ? WHERE id_conta = ?', array($valorDoisPorCento, 0)); $ps = $this->executar('UPDATE conta SET saldo = saldo + ? WHERE id_conta = ?', array($valorNovo, $idDestino)); commit(); } catch (Exception $e) { rollBack(); throw new TransferenciaException('Erro ao realizar transferencia'); } } else { try { beginTransaction(); $ps = $this->executar('SELECT * FROM conta WHERE id_conta = ?', array($idOrigem)); $p = $ps->fetchObject(); if ($p->saldo < $valor) { rollBack(); throw new TransferenciaException('Saldo da conta de origem insuficiente'); } $ps = $this->executar('UPDATE conta SET saldo = saldo - ? WHERE id_conta = ?', array($valor, $idOrigem)); $ps = $this->executar('UPDATE conta SET saldo = saldo + ? WHERE id_conta = ?', array($valor, $idDestino)); commit(); } catch (Exception $e) { rollBack(); throw new TransferenciaException('Erro ao realizar transferencia'); } } }
<?php header('Content-Type: text/plain; charset=utf-8'); require_once 'db_login.php'; $date = gmdate("Y-m-d H:i:s"); $dateDayAgo = gmdate("Y-m-d H:i:s", time() - 24 * 60 * 60); if (isset($_GET['cmd'])) { switch ($_GET['cmd']) { case 'reset': toBackUp(); break; case 'join': joinPlayers(); break; case 'rollback': rollBack(); break; default: echo "Invalid cmd"; break; } } else { echo "Nothing to do.."; } function joinPlayers() { global $date; global $dateDayAgo; $sql = <<<SQL_END UPDATE `players` SET `state` = 'WAITING', `waitingAlias` = 'TestU2', `tokens` = 'computerscience;terra' WHERE `players`.`playerId` =2; UPDATE `players` SET `state` = 'WAITING', `waitingAlias` = 'TestD', `tokens` = 'computerscience' WHERE `players`.`playerId` =9;