Autor Tema: Conexion Orientada a OBJETOS PHP & Postgresql  (Leído 13421 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado halcon

  • Novato
  • *
  • Mensajes: 2
  • Puntuación: 0
    • Ver Perfil
Conexion Orientada a OBJETOS PHP & Postgresql
« : 05 de mayo de 2008, 06:41:57 pm »
Cree este script y me funciona muy bien lo publico aqui y explico que hago  creo una conexion orientada a objetos y alamanceno en una constante las variables de la conexion y en la hoja donde creo las sentencias hago el llamado de las funciones  que cree en conexion aqui le dejo el codigo a mi me ha funcionado no ha dado errores pero pueden criticarlo si debo mejorarle algo
esta es la hoja conexion.php
<?php
   class  BaseDeDato
   {
      private $Servidor;
      private $Puerto;
      private $Nombre;
      private $Usuario;
      private $Clave;
      function __construct($Servidor,$Puerto,$Nombre,$Usuario,$Clave)
      {
         $this->Servidor=$Servidor;
         $this->Puerto=$Puerto;
         $this->Nombre=$Nombre;
         $this->Usuario=$Usuario;
         $this->Clave=$Clave;
      }
      function Conectar()
      {
         $BaseDato=pg_connect("host=$this->Servidor port=$this->Puerto dbname=$this->Nombre user=$this->Usuario password=$this->Clave");
         return $BaseDato;
      }
      function Consultas($Consulta)
      {
         $Valor=$this->Conectar();
         if(!$Valor)
            return 0; //Si no se pudo conectar
         else
         {
            //Valor es resultado de base de dato y Consulta es la Consulta a realizar
            $Resultado=pg_query($Valor,$Consulta);
            return $Resultado;// retorna si fue afectada una fila
         }
      }
   }
?>
constante.php
<?php
   define("BD","RBP");
    define("SERVIDOR","localhost");
    define("USUARIO","postgres");
    define("CLAVE","12345");
    define("PUERTO","5432");
?>
classusuario.php
<?php
include_once("ClassBaseDeDato.php");
include("../Constantes.php");
class Usuario
{
   private $login;
   private $contrasena;
   private $cedula;
   private $tipo;
   private $status;
   function __construct($login,$contrasena,$cedula,$tipo,$status)
   {
      $this->login=ucwords($login);
      $this->contrasena=md5($contrasena);
      $this->cedula=$cedula;
      $this->tipo=$tipo;
      $this->status=$status;
   }
   function Insertar()
   {            
      $BaseDato=new BaseDeDato(SERVIDOR,PUERTO,BD,USUARIO,CLAVE);//declarar el objeto de la clase base de dato
      $Consulta="INSERT INTO cuentausuario VALUES ('$this->login','$this->contrasena','$this->cedula','$this->tipo','Inactivo')";//declarar la consulta
      $ExisteCedula=$this->Existencia('cedula');
      $ExisteLogin=$this->Existencia('login');
      $ExisteContrasena=$this->Existencia('contrasena');
      if (!$ExisteCedula&&!$ExisteLogin&&!$ExisteContrasena)//si los dos resultados son cero Inserta los datos
      {
         $Resultado=$BaseDato->Consultas($Consulta);      
         if(pg_affected_rows($Resultado)>=0)//Si resulto almenos una fila afectada
         return 1;         
         else
         return 0;
      }
      
      if($ExisteCedula&&$ExisteLogin)// si los dos resultados son 1
      return -1;
      else
      if(!$ExisteCedula&&$ExisteLogin)// si $ExisteCedula es igual a cero y el otro no
      return -2;
      else
      if($ExisteCedula&&!$ExisteLogin)// si $ExisteLogin es igual a cero y el otro no
      return -3;
      
   }
   function Modificar()
   {
      include_once('../php/conexion.php');
      $resultado=pg_query($conexion,"UPDATE cuentausuario SET  contrasena='$this->contrasena', tipo='$this->tipo'
      WHERE login='$this->login'");
      if(pg_affected_rows($resultado)>=0)
      return 1;
      else
      return 0;
   }
   function Eliminar()
   {
      require_once('../php/conexion.php');
      $resultado=pg_query($conexion,"DELETE FROM cuentausuario WHERE  login='$this->login'");
      if(pg_affected_rows($resultado)>=0)
      return 1;
      else
      return 0;
   }
   function Buscar()
   {
      $BaseDato=new BaseDeDato(SERVIDOR,PUERTO,BD,USUARIO,CLAVE);//declarar el objeto de la clase base de dato
      $Consulta="SELECT * FROM cuentausuario AS a,privilegio AS b, personal as c WHERE (a.login='$this->login') AND
      (a.contrasena='$this->contrasena') AND (a.login=b.login) and (a.cedula=c.cedula)";//declarar la consulta
      $Resultado=$BaseDato->Consultas($Consulta);//llamar a la funcion de la base de dato que realiza las consulta
      
      $Datos=@pg_fetch_all($Resultado);//Devuelve los datos en forma de arreglo
         
      if($Datos[0]['login'])//verificar si arrojo algun resultado
         return $Datos;
      else
         return 0;      
   }
   function BuscarUsuario()
   {
      $BaseDato=new BaseDeDato(SERVIDOR,PUERTO,BD,USUARIO,CLAVE);//declarar el objeto de la clase base de dato
      
      if($this->Login!="")
      {
         $Condicion=$Condicion."a.login LIKE"."'$this->Login%'";
         $Operador="AND";
      }
      
      if($this->Nombre!="")
      {
         $Condicion=$Condicion." ".$Operador." a.nombre LIKE"."'$this->Nombre%'";
         $Operador="AND";
      }
      
      if($this->Cedula!="")
      {
         $Condicion=$Condicion." ".$Operador." a.cedula LIKE"."'$this->Cedula%'";
         $Operador="AND";
      }      
      if($this->Tipo!="")
      {
         $Condicion=$Condicion." ".$Operador." a.tipo="."'$this->Tipo'";
         $Operador="AND";
      }
      
      $Consulta="SELECT * FROM cuentausuario AS a,privilegio AS b WHERE ".$Condicion." AND (a.login=b.login)";//declarar la consulta
      $Resultado=$BaseDato->Consultas($Consulta);//llamar a la funcion de la base de dato que realiza las consulta
      
      $Datos=@pg_fetch_all($Resultado);//Devuelve los datos en forma de arreglo
         
      if($Datos[0]['login'])//verificar si arrojo algun resultado
         return $Datos;
      else
         return 0;      
   }
   function Existencia($Condicion)
   {
      $BaseDato=new BaseDeDato(SERVIDOR,PUERTO,BD,USUARIO,CLAVE);
      
      if($Condicion=='login')
      $Condicion="login="."'$this->login'";
      
      else
      if($Condicion=='cedula')
      $Condicion="cedula="."'$this->cedula'";
      else
      $Condicion="contrasena="."'$this->contrasena'";
      
      $Consulta="SELECT *FROM cuentausuario WHERE ".$Condicion;      
      
      $Resultado=$BaseDato->Consultas($Consulta);//llamar a la funcion de la base de dato que realiza las consulta      
      $Datos=@pg_fetch_all($Resultado);//Devuelve los datos en forma de arreglo   
      
      if($Datos[0]['login'])
         return 1;
      else
         return 0;
   }
   function BuscarTodo()
   {
      $BaseDato=new BaseDeDato(SERVIDOR,PUERTO,BD,USUARIO,CLAVE);//declarar el objeto de la clase base de dato
      $Consulta="SELECT * FROM privilegio";//declarar la consulta
      $Resultado=$BaseDato->Consultas($Consulta);//llamar a la funcion de la base de dato que realiza las consulta
      
      $Datos=@pg_fetch_all($Resultado);//Devuelve los datos en forma de arreglo
         
      if($Datos[0]['login'])//verificar si arrojo algun resultado
         return $Datos;
      else
         return 0;      
   }
}
?>

Desconectado ManiacPC

  • Novato
  • *
  • Mensajes: 1
  • Puntuación: 0
    • Ver Perfil
Re: Conexion Orientada a OBJETOS PHP & Postgresql
« Respuesta #1 : 15 de abril de 2009, 12:53:13 pm »
Ya lleva casi un año esta clase publicada por ti.
Soy programador PHP y me registré en este foro unicamente para agradecer tu aporte, a mi me simplificará la vida ahora que debo trabajar con pgsql y tenia q hacer una clase.

Grande Halcon,
Saludos desde Chile.
Enrique

Desconectado NecroimiX

  • Novato
  • *
  • Mensajes: 3
  • Puntuación: 0
    • Ver Perfil
Re:Conexion Orientada a OBJETOS PHP & Postgresql
« Respuesta #2 : 01 de diciembre de 2010, 01:39:04 am »
esta es la hoja conexion.php
<?php
      class  BaseDeDato{}
?>
--------------------------------
constantes.php
<?php ... ?>
--------------------------------
classusuario.php
<?php
include_once("ClassBaseDeDato.php");
include("../Constantes.php");
class Usuario
{
   function __construct($login,$contrasena,$cedula,$tipo,$status) {...}
   function Insertar()   {...}
   function Modificar()
   {   include_once('../php/conexion.php'); ... }
   function Eliminar()
   {   require_once('../php/conexion.php'); ... }
   function Buscar()
   {   $BaseDato=new BaseDeDato(SERVIDOR,PUERTO,BD,USUARIO,CLAVE); ... }
   function BuscarUsuario()
   {   $BaseDato=new BaseDeDato(SERVIDOR,PUERTO,BD,USUARIO,CLAVE); ... }
   function Existencia($Condicion)
   {   $BaseDato=new BaseDeDato(SERVIDOR,PUERTO,BD,USUARIO,CLAVE); ... }
   function BuscarTodo()
   {   $BaseDato=new BaseDeDato(SERVIDOR,PUERTO,BD,USUARIO,CLAVE); ... }
?>

--------------------------------
--------------------------------
--------------------------------

He dado una vista rapida al codigo y veo que hay errores pequeño, como en los nombres.
Mi duda es que archivo se llama "conexion.php". tanto en la funcion modificar como eliminar usas: include_once('../php/conexion.php'); ... supuestamente el primero archivo de clase de conexion se llama ClassBaseDeDato.php porque lineas mas abajo usas: "include_once("ClassBaseDeDato.php");".
o acaso te refieres al mismo archivo y tan solo te quicvocaste de nombre?.