/** * Função para ligar uma variável a um valor * @param string $campo * @param string $valor * @param string $tipo (STRING = DEFAULT, NULL, INT, STRING, BLOB) * param CONSTANTES $tipo * Tipos constantes: * Os tipos são: * "BOOLEAN" -> PDO::PARAM_BOOL (integer) * Representa um tipo de dados booleano. * "NULL" -> PDO::PARAM_NULL (integer) * Representa um tipo de dados nulo. * "INT" -> PDO::PARAM_INT (integer) * Representa o um tipo de dado inteiro * "STRING -> PDO::PARAM_STR (integer) * Representa o CHAR, VARCHAR, ou outros tipos de dados string. * "BLOB" -> PDO::PARAM_LOB (integer) * Representa o tipo de dado BLOB - Binary Large Objects * param int Tamanho */ public function liga($campo, $valor, $tipo = "STRING") { /* * Ajusto o tipo da variáveL */ switch (strtoupper($tipo)) { case "BOOLEAN": $tp = PDO::PARAM_BOOL; break; case "NULL": $tp = PDO::PARAM_NULL; break; case "INT": $tp = PDO::PARAM_INT; break; case "BLOB": $tp = PDO::PARAM_LOB; break; default: $tp = PDO::PARAM_STR; break; } /* Tento ligar um valor ao parâmetro */ Depurar::reg("Parametro: {$campo} Tipo:{$tipo} Valor:{$valor}"); try { $this->resultado->bindValue(":" . $campo, $valor, $tp); //echo "liguei :{$campo} a {$valor}"; } catch (PDOException $e) { die($e - getMessage()); } }
/** * Método que executa a Instrução SQL e retorna a quantidade de registros afetados. */ public function executa() { $ret = ""; try { $ret = $this->resultado->execute(); } catch (PDOException $e) { $this->conexao->rollBack(); Depurar::reg("[ERRO] " . $e->getMessage()); } if (!$ret) { $erro = ":Problemas na Execução do Comando SQL!"; die(__FILE__ . ":" . __LINE__ . $erro); } return $this->resultado->rowCount(); }
/** * Termina uma transação com o Banco de Dados */ public function fimTransacao() { if ($this->transacao) { $cnx = $this->getConexao(); try { $cnx->commit(); Depurar::reg("[FIM TRANS]"); } catch (Exception $e) { $cnx->rollBack(); Depurar::reg("[ERRO] ROLLBACK TRANS" . $e->getMessage()); echo "Aconteceu um Erro: " . $e->getMessage(); die; } } $this->transacao = false; }
/** * Método que executa a consulta */ public function executa() { if (!$this->exec) { try { $ret = $this->resultado->execute(); $this->dados = false; $this->exec = true; } catch (PDOException $e) { $this->conexao->rollBack(); Depurar::reg("[ERRO] " . $e->getMessage()); } Depurar::reg("[OK]"); // $this->resultado->execute(); // $this->dados = false; // $this->exec = true; } }