Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Clase para postgres y mysql

Estas en el tema de Clase para postgres y mysql en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Aqui les dejo el ultimo release de la clase q utilizo para conectarme a mis db espero sus comentarios y sugerencias: config.php Código PHP: <?php ...
  #1 (permalink)  
Antiguo 25/01/2010, 07:22
 
Fecha de Ingreso: abril-2008
Mensajes: 7
Antigüedad: 16 años
Puntos: 0
Clase para postgres y mysql

Aqui les dejo el ultimo release de la clase q utilizo para conectarme a mis db espero sus comentarios y sugerencias:

config.php
Código PHP:
<?php
    $conf_db
[1]["servidor"] = "127.0.0.1";
    
$conf_db[1]["usuario"]  = "postgres";
    
$conf_db[1]["password"] = "1234";
    
$conf_db[1]["bbdd"]     = "test";
    
$conf_db[1]["port"]     = "5432";
    
$conf_db[1]["typedb"]   = "1";
    
    
$conf_db[2]["servidor"] = "127.0.0.1";
    
$conf_db[2]["usuario"]  = "root";
    
$conf_db[2]["password"] = "1234";
    
$conf_db[2]["bbdd"]     = "mysql";
    
$conf_db[2]["port"]     = "3306";
    
$conf_db[2]["typedb"]   = "2";
    
/*
    Type DB: Motor de base de datos
    1: Mysql
    2: PostgreSQL
*/    
    // Conexion por defecto
    
$nconex "1";
    
$servidor   $conf_db[$nconex]["servidor"];             
    
$usuario     $conf_db[$nconex]["usuario"];                
    
$password     $conf_db[$nconex]["password"];                  
    
$bbdd         $conf_db[$nconex]["bbdd"];                    
    
$port       $conf_db[$nconex]["port"];
    
$typedb     $conf_db[$nconex]["typedb"];
?>
class_DB.php
Código PHP:
<?php
class DB
{
    
    
# ATRIBUTOS 
    
    
private $testeando        true;                
    private 
$email_admin;    
    private 
$conexion;
    private 
$selec_bbdd;
    private 
$string_sucio;
    private 
$string_limpio;
    private 
$resultado;
    private 
$typedb;
    private 
$consulta;                                

    function 
__construct (){    
        
$nroarg func_num_args();
        if(
$nroarg==0){
            
$this->typedb 1;
        }
        if(
$nroarg==1){
            
$this->typedb func_get_arg(0);    
        }
        
        if(
$nroarg<=1){
            require(
"config.php");            
            
$servidor   $conf_db[$this->typedb]["servidor"];             
            
$usuario     $conf_db[$this->typedb]["usuario"];                
            
$password     $conf_db[$this->typedb]["password"];                  
            
$bbdd         $conf_db[$this->typedb]["bbdd"];                    
            
$port       $conf_db[$this->typedb]["port"];
            
$typedb     $conf_db[$this->typedb]["typedb"];
        }else{
            
            
$servidor   func_get_arg(0);
            
$usuario        func_get_arg(1);
            
$password func_get_arg(2);
            
$bbdd           func_get_arg(3);
            
$port          func_get_arg(4);
            
$typedb      func_get_arg(5);
            
$this->typedb func_get_arg(5);    
        }
            switch(
$this->typedb){
            case  
1:
                
$this-> conexion = @pg_connect ("host=".$servidor." port=".$port." dbname=".$bbdd." user=".$usuario." password=".$password."") or die ($this-> err ());
            break;            
            case  
2:
                
                
$this-> conexion = @mysql_connect($servidor.":".$port$usuario$password) or die ($this-> err ());
                
$this-> selec_bbdd = @mysql_select_db ($bbdd$this-> conexion) or die ($this-> err ());
            break;    
        }

    }
    

    private function 
err (){

        if (
$this-> testeando){
        
            if(
func_num_args()==0){
                
$tipo_error 1;
            }else{
                
$tipo_error 2;
                
$consulta func_get_arg(0);    
            }
            
            switch(
$this->typedb){
                case  
1:
                    if(
$tipo_error==1){
                        
$error "Conexion a base de datos postgres fallida";
                        echo 
"<p><b><font color='red'>ERROR:</b> --> </b> $error</font></p>";
                    }elseif(
$tipo_error==2){
                        echo
"<p><i>Error En Consulta SQL:</i><br><span style='color:#FF0000; font-weight:bold;'>$consulta<br>".pg_ErrorMessage($this-> conexion)."</span></p>";
                    }
                break;            
                case  
2:
                    if(
$tipo_error==1){    
                        
$error mysql_errno()." - ".mysql_error();
                        echo 
"<p><b><font color='red'>ERROR:</b> --> </b> $error</font></p>";
                    }elseif(
$tipo_error==2){
                        
$error mysql_errno()." - ".mysql_error();
                        echo
"<p><i>Error En Consulta SQL:</i><br><span style='color:#FF0000; font-weight:bold;'>$consulta<br>".$error."</span></p>";
                    }
                break;    
            }
            exit ();
        } 
        else{
            echo 
"<b><font color='red'>Ha Ocurrido un error</font></b>";
            if (
$this-> email_admin ){
                echo 
", Favor contacte a su adminstrador de sistemas";
            }
        


            exit ();
        }
    }
    
        
    public function 
ejecutar($consulta){
        switch(
$this->typedb){
            case  
1:
                
$this-> resultado = @pg_exec ($this-> conexion,$consulta)or die($this-> err ($consulta));
                
$this-> consulta $consulta;
            break;            
            case  
2:
                
$this-> resultado = @mysql_query ($consulta $this-> conexion ) or die($this-> err ($consulta));
                
$this-> consulta $consulta;
            break;    
        }    
        return (
$this-> consulta);
    }
    
    public function 
num_filas (){
        
// devuelve el numero total de filas (horizontal) de la consulta
        
        
switch($this->typedb){
            case  
1:
                
$num_rows pg_num_rows ($this-> resultado);
            break;            
            case  
2:
                
$num_rows mysql_num_rows ($this-> resultado);
            break;    
        }    
        return 
$num_rows;
    }
    
    public function 
num_columnas (){
        
// devuelve el numero total de columnas (vertical) de la consulta
        
switch($this->typedb){
            case  
1:
                
$num_fields =  pg_num_fields ($this-> resultado);
            break;            
            case  
2:
                
$num_fields mysql_num_fields ($this-> resultado);
            break;    
        }
        return 
$num_fields;
    }
    
    public function 
lista_objeto (){
        
// regresará las filas en el resultado como un objeto
        
switch($this->typedb){
            case  
1:
                
$fetch_object =  pg_fetch_object ($this-> resultado);
            break;            
            case  
2:
                
$fetch_object mysql_fetch_object ($this-> resultado);
            break;    
        }    
        return 
$fetch_object;
    }
    
    public function 
lista_array (){
        
// regresará las filas en el resultado como un array
        
switch($this->typedb){
            case  
1:
                
$fetch_array =  pg_fetch_array ($this-> resultado);
            break;            
            case  
2:
                
$fetch_array mysql_fetch_array ($this-> resultado);
            break;    
        }    
        return  
fetch_array;
    }    
    
    public function 
lista_array_todas (){
        
// regresará  TODAS las filas en el resultado como un array
        
switch($this->typedb){
            case  
1:
                
$fetch_all =  pg_fetch_all ($this-> resultado);
            break;            
            case  
2:
                
$fetch_all mysql_fetch_assoc ($this-> resultado);
            break;    
        }    
        return  
$fetch_all;
    }    
    
            
    function 
__destruct (){
        
    }    
    
    function 
__toString(){    
    
        switch(
$this->typedb){
            case  
1:
                return 
"Conexion a postgres";
            break;            
            case  
2:
                return 
"Conexion a mysql";
            break;    
        }    
        
    }
// fin de la clase
?>
pruebas.php
Código PHP:
require ("class_DB.php");
$db1=new DB(); # conexion a postgres configuracion por defecto archivo config.php
$db2=new DB(2); # conexion a mysql configuracion archivo config.php toma el numero de conex
$db3=new DB("127.0.0.1","root","1234","test","3306","2"); # conexion a mysql
$db4=new DB("127.0.0.1","postgres","1234","test","5432","1"); # conexion a postgres 
El resto es usar los metodos esto me permite estar conectado a infinitas clases de db al mismo tiempo, solo he puesto postgres y mysql porque son las que utilizo. Espero los comentarios Gracias de antemano :D

Etiquetas: clase, mysql, postgresql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:03.