Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/12/2006, 15:30
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Un pequeño aporte: manejador de conexiones a BD

Holas gente peachepera...

Aquí les dejo una clase para manejar conexiones a BD MySQL, y la dejo por 2 motivos:

1.- para que la use quien crea que es útil
2.- para que los expertos peacheperos de este foro me tiren algunas líneas para mejorarla en general y para permitir principalmente que pueda usarse con varios usuarios sin tener que pasarle todos los datos a la hora de la inicialización.


En fin, espero que les guste


Código PHP:
<?php
/*
BD v2 -> clase para manejo de conexiones y consultas a base de datos MySQL.
*/

# un poco de configuración
# ¿mostrar errores?
define('db_MOSTRAR_ERRORES'true);

# ¿salir si hay errores?: false para continuar.
define('db_SALIR_EN_ERROR'true);

# ¿mostrar la consulta al salir?
define('db_MOSTRAR_CONSULTA'true);


##### Usuario predeterminado
define('db_SERVIDOR''');
define('db_USUARIO''');
define('db_CONTRASENIA''');
define('db_BASE''');




if (!
class_exists('BD')) {

class 
BD {
 var 
$conex;
 var 
$cons;
 var 
$errConex;
 var 
$errCons;
 var 
$UltCons;
 var 
$total;


 function 
BD($base db_BASE) {
  
$conectado mysql_connectdb_SERVIDORdb_USUARIOdb_CONTRASENIA );
  if (
$conectado === false) {
   
$this->errConex "1 - No se pudo conectar al servidor: ".mysql_error();
   }
  else {
   if (
mysql_select_db($base$conectado) === false) {
    
$this->errConex "2 - No se pudo conectar a la base de datos especificada: ".mysql_error();
    }
   else {
    
$this->errConex "0 - Conexión realizada correctamente";
    
$this->conex $conectado;
    }
   }
  if (
$this->errConex[0] != '0') {
   if (
db_MOSTRAR_ERRORES) {
    echo 
$this->errConex;
    }
   if (
db_SALIR_EN_ERROR) {
    exit;
    }
   }
  }

 function 
Consulta($cadena_consulta) {
  
$this->UltCons $cadena_consulta;
  if (
$this->errConex{0} == '0') {
   
$res mysql_query($cadena_consulta$this->conex);
   if (
$res === false) {
    
$this->errCons '1 - Error en la Consulta: '.mysql_error();
    }
   else {
    
$this->errCons '0 - Consulta sin errores';
    
$this->cons $res;
    if ((
$res !== true) && ($res !== false) ) { # para que no lo calcule si no es necesario
     
$this->total mysql_num_rows($res);
     }
    }
   }
  else {
   
$this->errCons '2 - No se pudo realizar la consulta porque no hay conexiones activas';
   }
  if (
$this->errCons[0] != '0') {
   if (
db_MOSTRAR_ERRORES) {
    echo 
$this->errCons.'<p>';
    }
   if (
db_MOSTRAR_CONSULTA) {
    echo 
$this->UltCons;    
    }
   if (
db_SALIR_EN_ERROR) {
    exit;
    }
   }
  return (isset(
$this->cons)) ? $this->cons $this->errCons;
  }

 function 
cambiaBase($nueva_base) {
  if (
mysql_select_db($nuevabase$this->conex) === false) {
   
$this->errConex '2 - No se pudo conectar a la base de datos especificada: '.mysql_error();
   }
  else {
   
$this->errConex '0 - Conexión realizada correctamente';
   }
  }

 function 
obtenerAsoc($apuntador '') {
  
$apuntador = (empty($apuntador)) ? $this->cons $apuntador;
  return 
mysql_fetch_assoc($apuntador);
  }

 function 
obtenerReg($apuntador '') {
  
$apuntador = (empty($apuntador)) ? $this->cons $apuntador;
  return 
mysql_fetch_row($apuntador);
  }

 function 
Liberar($resultado '') {
  
$resultado = (empty($resultado)) ? $this->cons $resultado;
  return 
mysql_free_result($resultado);
  }
 }
}
?>

Saludos