Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/03/2011, 00:55
jvasquezader
 
Fecha de Ingreso: enero-2011
Ubicación: CIX
Mensajes: 6
Antigüedad: 15 años, 8 meses
Puntos: 0
Información Ayuda class conexión Mysql y Pg [UtilizaR]

Config.php
Código 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:

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:

Código PHP:
<?php
require ("class_DB.php");
$db1=new DB(); # conexion a postgres configuracion por defecto archivo config.php
$bd2=new DB(2); # conexion a mysql configuracion archivo config.php toma el numero de conex
$bd3 =new DB("127.0.0.1","root","","encuesta","3306","2"); # conexion a mysql
$db4=new DB("192.168.127.128","videos","jajaja","BDVIDEOS","5432","1"); # conexion a postgres  
?>
Esta class es gracias al amigo "adjmogollon"; pero no se si ustedes podrían dar un ejemplo de como utilizar esta class. Muchas gracias a todos.