Estou com um projeto para entregar até o fim de março aqui no trabalho, a minha dificuldade é criar um conexão com o Oracle em Camadas, em outras empresas já realizei um projeto parecido porém foi utilizando MySQL e MSSQL.
Estou precisando somente de dicas ou exemplos de como fazer as "functions" de select, insert, update e etc igual como fiz nos meus outros projetos.
Exemplo das Conexões MySQL e MSSQL
MySql
Arquivo: Banco.php
<?
class Banco {
private $server;
private $bd;
private $user;
private $password;
private $erro;
private $result;
private $conexao;
public function Banco ($u="",$s="",$b="projetophp",$serve="localhost") {
if(!$this -> SetConexao($serve,$u,$s)) {
$this -> SetErro("Erro de Conexão - ".mysqli_error($this -> GetConexao()));
return false;
}
if(!$this -> SetBd($b)) {
$this -> SetErro("Banco não Encontrado - ".mysqli_error($this -> GetConexao()));
return false;
}
}
... [Outros Getters e Setters] ...
public function SetConexao ($s,$u,$p){
if($this -> conexao = mysqli_connect($s,$u,$p)) {
return true;
}
return false;
}
public function SetBd ($bd) {
$this -> bd = $bd;
if(mysqli_select_db($this -> GetConexao(),$bd)) {
return true;
}
return false;
}
public function SelectSQL($sql) {
if($result = mysqli_query($this -> GetConexao(),$sql)) {
$this -> SetResult($result);
return true;
}
$this -> SetErro("Query Inválida - ".mysqli_error($this -> GetConexao()));
return false;
}
// Insert e Update
public function InsertSQL($sql) {
if(mysqli_query($this -> GetConexao(),$sql)) {
return true;
}
$this -> SetErro("Query Invalida - ".mysqli_error($this -> GetConexao()));
return false;
}
public function SetResult($r){
if(mysqli_num_rows($r) > 0) {
$this -> result = array();
while($linha = mysqli_fetch_array($r,MYSQLI_ASSOC)) {
array_push($this -> result,$linha);
}
} else {
$this -> result = null;
}
}
}
?>
Arquivo: Repositorio.php
require("banco.php");
require("usuario.php");
class RepositorioUsuario{
private $banco;
private $erro;
public function RepositorioUsuario(){
$this -> banco = new Banco();
}
public function SetErro($msg) {
$this -> erro = "Ocorreu um erro no sitema :".$msg;
}
public function GetErro() {
return $this -> erro;
}
// Usuário
public function ChecaUsuario($u) {
$sql = "SELECT * FROM CLIENTES WHERE LOGIN = '".$u->GetLogin()."' AND SENHA ='".$u->GetSenha()."'";
if (!$this -> banco -> SelectSQL($sql)) {
$msg = "Erro de login: ".$this -> banco -> GetErro();
$this -> SetErro($msg);
return false;
}
if ($this -> banco -> GetResult() == null) {
return false;
} else {
$usuario = new Usuario($linha['COD_CLI'],$linha['LOGIN'],$linha['SENHA'],
$linha['NOME'],$linha['SOBRENOME'],$linha['EMAIL']);
}
return true;
}
... [Outras funções de SQL] ...
public function AtualizaUsuario($u) {
$sql = "UPDATE CLIENTES SET LOGIN = '".$u->GetLogin()."' ";
$sql.= ",NOME = '".$u->GetNome()."',SOBRENOME = '".$u->GetSobrenome()."' ";
$sql.= "WHERE COD_CLI ='".$u->GetCodigo()."'";
if (!$this -> banco -> InsertSQL($sql)) {
$this -> SetErro($this -> banco -> GetErro());
return false;
}
return true;
}
... [Outras funções de SQL] ...
}
?>
MSSQLArquivo: Banco.php
<?php
class Banco {
var $server;
var $bd;
var $user;
var $password;
var $erro;
var $result;
var $conexao;
function Banco ($u="",$s="",$b="projetophp",$serve="localhost") {
if(!$this -> SetConexao($serve,$u,$s)) {
$this -> SetErro("Erro de Conexão - ".mssql_get_last_message($this -> GetConexao()));
return false;
}
if(!$this -> SetBd($b)) {
$this -> SetErro("Banco não Encontrado - ".mssql_get_last_message($this -> GetConexao()));
return false;
}
}
... [Outros Getters e Setters] ...
function SetConexao ($s,$u,$p){
if($this -> conexao = mssql_connect($s,$u,$p)) {
return true;
}
return false;
}
function SetBd ($bd) {
$this -> bd = $bd;
if(mssql_select_db($bd,$this -> GetConexao())) {
return true;
}
return false;
}
function ExecSQL($sql) {
if(mssql_query($sql,$this -> GetConexao())) {
return true;
}
$this -> SetErro("Query Inválida - ".mssql_get_last_message($this -> GetConexao()));
return false;
}
function SelectSQL($sql) {
if($result = mssql_query($sql,$this -> GetConexao())) {
$this -> SetResult($result);
return true;
}
$this -> SetErro("Query Inválida - ".mssql_get_last_message($this -> GetConexao()));
return false;
}
function InsertSQL($sql) {
if (mssql_query($sql,$this -> GetConexao())) {
return true;
}
$this -> SetErro("Query Invalida - ".mssql_get_last_message($this -> GetConexao()));
return false;
}
function SetResult($r){
if(mssql_num_rows($r) > 0) {
$this -> result = array();
while($linha = mssql_fetch_array($r,MSSQL_ASSOC)) {
array_push($this -> result,$linha);
}
} else {
$this -> result = null;
}
}
}
?>
Arquivo: Repositorio.php
<?php
require("banco.php");
require("usuario.php");
class RepositorioUsuario {
var $banco;
var $erro;
function RepositorioUsuario(){
$this -> banco = new Banco();
}
function SetErro($msg) {
$this -> erro = "Ocorreu um erro no sitema :".$msg;
}
function GetErro() {
return $this -> erro;
}
// Usuário
function ChecaUsuario($u) {
$sql = "SELECT NOME, U_SENHAWEB, NOMEALT, RETORNO FROM CFGUSR ";
$sql.= "WHERE (NOME = '".$u->GetNome()."') AND (U_SENHAWEB = '".$u->GetSenha()."')";
if (!$this -> banco -> SelectSQL($sql)) {
$msg = "Erro de login: ".$this -> banco -> GetErro();
$this -> SetErro($msg);
return false;
}
if ($this -> banco -> GetResult() == null) {
return false;
} else {
$usuario = new Usuario($linha['NOME'],$linha['SENHA'],$linha['NOMEALT'],$linha['RETORNO']);
}
return true;
}
function SetIdenttity($tabela, $tipo) {
$sql = "SET IDENTITY_INSERT ".$tabela." ".$tipo;
$this -> banco -> ExecSQL($sql);
}
function InserirRAT($r) {
$sql = "INSERT INTO DOCPLA(CODDOC, ARQUIVO, CODEMP, CODPLA, ";
$sql.= "CODSET, DESCRICAO) VALUES(".$r->GetPCodigo().",'";
$sql.= ".$r->GetPArquivo()."',".$r->GetPCodEmp().",".$r->GetPCodPla().";
$sql.= ",".$r->GetPCodSet().",'".$r->GetPDescricao()."';
if (!$this -> banco -> InsertSQL($sql)) {
$this -> SetErro($this -> banco -> GetErro());
return false;
}
return true;
}
}
?>
Pretendo até unificar todas as conexões em um unico arquivo separando os comandos pelo CASE "Banco" ou IF "BANCO"
Se alguém se interesar pelos arquivos prontos posso disponibilizar.
Pergunta
RValentim
Boa Tarde a todos,
Estou com um projeto para entregar até o fim de março aqui no trabalho, a minha dificuldade é criar um conexão com o Oracle em Camadas, em outras empresas já realizei um projeto parecido porém foi utilizando MySQL e MSSQL.
Estou precisando somente de dicas ou exemplos de como fazer as "functions" de select, insert, update e etc igual como fiz nos meus outros projetos.
Exemplo das Conexões MySQL e MSSQL
MySql
Arquivo: Banco.php
Arquivo: Repositorio.php MSSQL Arquivo: Banco.php Arquivo: Repositorio.phpPretendo até unificar todas as conexões em um unico arquivo separando os comandos pelo CASE "Banco" ou IF "BANCO"
Se alguém se interesar pelos arquivos prontos posso disponibilizar.
Muito Obrigado pela atenção de todos
Editado por RValentimLink para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.