Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/03/2011, 00:55
jvasquezader
 
Fecha de Ingreso: enero-2011
Ubicación: CIX
Mensajes: 6
Antigüedad: 14 años
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.