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

PHP OO Ayuda class conexión Mysql y Pg [UtilizaR]

Estas en el tema de Ayuda class conexión Mysql y Pg [UtilizaR] en el foro de Frameworks y PHP orientado a objetos en Foros del Web. 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 (permalink)  
Antiguo 12/03/2011, 00:55
 
Fecha de Ingreso: enero-2011
Ubicación: CIX
Mensajes: 6
Antigüedad: 13 años, 3 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.
  #2 (permalink)  
Antiguo 12/03/2011, 11:27
Avatar de _ssx  
Fecha de Ingreso: mayo-2003
Ubicación: mX
Mensajes: 683
Antigüedad: 21 años
Puntos: 60
Respuesta: Ayuda class conexión Mysql y Pg [UtilizaR]

Pero que fea clase :D

Sin embargo pues solo es de que utilices los metodos que trae

Código PHP:
require ("class_DB.php"); 
$db1=new DB();
$db1->ejecutar();
$db1->obtener_datos(); 
y así sucesivamente, aunque te recomiendo usar PDO o algo mas robusto, esa clase esta demasiado casera..
__________________
Escribe tu código de forma que refleje, y saque a relucir,lo mejor de tu carácter personal
www.oscararzola.com/blog
Principios de un programador
  #3 (permalink)  
Antiguo 12/03/2011, 12:42
 
Fecha de Ingreso: enero-2011
Ubicación: CIX
Mensajes: 6
Antigüedad: 13 años, 3 meses
Puntos: 0
Pregunta Respuesta: Ayuda class conexión Mysql y Pg [UtilizaR]

Amigo : _ssx, Grax por tu comen. Lo estoy tomando en cuanta y pues no se si puedas sugerirme una buena class robusta.
  #4 (permalink)  
Antiguo 12/03/2011, 12:43
 
Fecha de Ingreso: enero-2011
Ubicación: CIX
Mensajes: 6
Antigüedad: 13 años, 3 meses
Puntos: 0
De acuerdo Respuesta: Ayuda class conexión Mysql y Pg [UtilizaR]

Cita:
Iniciado por _ssx Ver Mensaje
Pero que fea clase :D

Sin embargo pues solo es de que utilices los metodos que trae

Código PHP:
require ("class_DB.php"); 
$db1=new DB();
$db1->ejecutar();
$db1->obtener_datos(); 
y así sucesivamente, aunque te recomiendo usar PDO o algo mas robusto, esa clase esta demasiado casera..
Amigo : _ssx, Grax por tu comen. Lo estoy tomando en cuanta y pues no se si puedas sugerirme una buena class robusta.
  #5 (permalink)  
Antiguo 12/03/2011, 12:52
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Ayuda class conexión Mysql y Pg [UtilizaR]

lo que el amigo te indico sobre PDO te podria ser muy util, de esta puedes crear una generada directamente por ti que extienda de esta para la conexion, en el foro hay varios temas relacionados con este tipo de clase en mi caso cuando comenzaba con lo que era la POO hice un post relacionado con este tipo de clase, los comentarios te pueden ser de utilidad, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way

Etiquetas: mysql, php, php+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 16:55.