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

[Aporte]Clase para conexion a la base de datos

Estas en el tema de [Aporte]Clase para conexion a la base de datos en el foro de Frameworks y PHP orientado a objetos en Foros del Web. hola gente, les dejo algo que me es muy util y que a algunos les puede servir: Código PHP: class  DbConn  {     private  $_sHost  =  ...
  #1 (permalink)  
Antiguo 20/10/2008, 11:54
 
Fecha de Ingreso: abril-2008
Mensajes: 453
Antigüedad: 16 años, 8 meses
Puntos: 16
[Aporte]Clase para conexion a la base de datos

hola gente, les dejo algo que me es muy util y que a algunos les puede servir:

Código PHP:

class DbConn {
    private 
$_sHost '';
    private 
$_sUser '';
    private 
$_sPass '';
    private 
$_sDbName '';
    private 
$_rConn null;
    private 
$_bReady false;

    function 
DbConn($sHost ''$sUser ''$sPass '') {
        
$this->_sHost $sHost;
        
$this->_sUser $sUser;
        
$this->_sPass $sPass;
    }

    function 
__destruct() {
        
$this->disconnect();
        return 
$this->connected() === false;
    }

    function 
connect($sHost ''$sUser ''$sPass '') {
        if(!
extension_loaded('mysql')) @dl('mysql.' PHP_SHLIB_SUFFIX);
        if(!
function_exists('mysql_connect')) {
            die(
__CLASS__ '::connect(): la exetensión MySQL no ha sido encontrada');
        }
        if(
$this->connected()) return true;
        
$this->_sHost strlen($sHost) ? $sHost $this->_sHost;
        
$this->_sUser strlen($sUser) ? $sUser $this->_sUser;
        
$this->_sPass strlen($sPass) ? $sPass $this->_sPass;
        
$this->_rConn mysql_connect($this->_sHost$this->_sUser$this->_sPass);
        if(!
is_resource($this->_rConn)) {
            @
error_log(__CLASS__ '::connect(): Error al conectar con el servidor MySQL' mysql_error());
            
$this->_bReady false;
        }
        
$this->_bReady true;
        return 
$this->connected();
    }

    public
    function 
disconnect() {
        
$this->_bReady false;
        if(!
$this->connected()) return true/* already disconnected, nothing to do */
        
return mysql_close($this->_rConn);
    }

    public
    function 
connected() {
        if(!
is_resource($this->_rConn)) return false;
        return (
get_resource_type($this->_rConn) == 'mysql link');
    }

    public
    function 
selectDb($sDbName) {
        if(!
$this->connected()) return false;

        
$this->_sDbName $sDbName;
        if(!@
mysql_select_db($this->_sDbName$this->_rConn)) {
            @
error_log(__CLASS__ '::selectDB(): Error al seleccionar la base de datos' mysql_error($this->_rConn));
            
$this->_sDbName '';
            
$this->_bReady false;
            return 
false;
        }
        return 
true;
    }

    public
    function 
dbSelected() {
        return 
$this->connected() && (bool) strlen($this->_sDbName);
    }

    public
    function 
query($sQuery) {
        if(!
$this->_bReady || !$this->connected()) return false;

        
$rRes = @mysql_query($sQuery$this->_rConn);

        if(!
is_resource($rRes) && mysql_errno() > 0) {
            
$sErr mysql_error($this->_rConn);
            
$iErrCode mysql_errno($this->_rConn);
            @
error_log(__CLASS__ "::query(): Error: {$sErr} ({$iErrCode})");
            
        }
        
        return 
$rRes;
    }

    public
    function 
sanitize($sString) {
        return 
str_replace('\'''\'\''$sString);
    }

    static
    function 
isResult($rRes) {
        if(!
is_resource($rRes)) return false;
        return (
get_resource_type($rRes) == 'mysql result');
    }

    static
    function 
numRows($rRes) {
        if(!
DbConn::isResult($rRes)) return null;
        return 
mysql_num_rows($rRes);
    }

    function 
affectedRows() {
        if(!
$this->connected()) return null;
        return 
mysql_affected_rows($this->_rConn);
    }
    
    
    
    
    static
    function 
numFields($rRes) {
        if(!
DbConn::isResult($rRes)) return null;
        return 
mysql_num_fields    ($rRes);
    }
    
    function 
maxID($tabla,$id){
                if(!
$this->connected()) return null;
                
$query 'SELECT MAX('.$id.') AS last_id FROM '.$tabla;
                
$result mysql_query($query);
                
$result mysql_fetch_array($result);
                return 
$result[last_id]+1
        
    }
    
    function 
insertId() {
        if(!
$this->connected()) return null;
        return 
mysql_insert_id($this->_rConn);
    }

    static
    function 
fetchArray($rRes) {
        if(!
self::isResult($rRes)) return null;
        return 
mysql_fetch_array($rRes);
    }

    static
    function 
fetchLengths($rRes) {
        if(!
self::isResult($rRes)) return null;
        return 
mysql_fetch_lengths($rRes);
    }

    static
    function 
fetchObject($rRes) {
        if(!
self::isResult($rRes)) return null;
        return 
mysql_fetch_object($rRes);
    }

    static
    function 
fetchRow($rRes) {
        if(!
self::isResult($rRes)) return null;
        return 
mysql_fetch_row($rRes);
    }

    static
    function 
getAllRows($rRes) {
        if(!
DbConn::isResult($rRes)) return null;
        if(!
mysql_num_rows($rRes)) return array();
        
mysql_data_seek($rRes0);
        
$aRet = array();
        while(
$aRow self::fetchArray($rRes)) {
            
$aRet[] = $aRow;
        }
        return 
$aRet;
    }

  #2 (permalink)  
Antiguo 20/10/2008, 12:59
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: [Aporte]Clase para conexion a la base de datos

Tema trasladado a PHP Orientado a Objetos.
  #3 (permalink)  
Antiguo 22/10/2008, 14:10
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 20 años, 1 mes
Puntos: 43
Respuesta: [Aporte]Clase para conexion a la base de datos

interesante podrias poner algun ejemplo de su uso?

salu2
  #4 (permalink)  
Antiguo 23/10/2008, 13:00
Avatar de djdraft  
Fecha de Ingreso: abril-2008
Mensajes: 118
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: [Aporte]Clase para conexion a la base de datos

disculpame mano pero para hacer una conexion no hay que hacer un script tan largo, es codigo demas, se puede usar un clase simple para conectar y desconectar no hay porque hacer tantas lineas
__________________
<img src="http://i280.photobucket.com/albums/kk197/djdraft22/DR.jpg">
  #5 (permalink)  
Antiguo 23/10/2008, 14:34
 
Fecha de Ingreso: abril-2008
Mensajes: 453
Antigüedad: 16 años, 8 meses
Puntos: 16
Respuesta: [Aporte]Clase para conexion a la base de datos

pero no es solamente para conectar, tambien para utilizar funciones mysql mas organizado por lo menos yo me organizo asi
Código PHP:
global $Db
$sql "SELECT * FROM LALALL WHERE CCHAH='1'";
$res $Db->query($sql);
$arr $Db->fetchArray($res); 
  #6 (permalink)  
Antiguo 05/01/2009, 09:25
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 8 meses
Puntos: 292
Respuesta: [Aporte]Clase para conexion a la base de datos

Interesante........la voy a mirar bien
__________________
Salu2!

Última edición por Italico76; 16/01/2009 a las 19:12
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:08.