Ver Mensaje Individual
  #2 (permalink)  
Antiguo 10/01/2006, 06:02
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
El tema creo que no pasa por usar más o menos líneas .. sino el hecho de usar POO o programación estructurada clásica.

Al usar POO para este caso heredas todas las ventajas de la POO .. Si tu creas un objeto para conectarte a una BD como pueda ser este que -sólo- lo hace hacia Mysql .. lo primero que consigues es "separar" el código de la conexión y manejo de tu BBDD del código de tu aplicación en sí que trabaja con esos datos ("capa de negocios"?).

Así como está dicha clase lo primero que te permite es realizar conexiones diferentes a otras BBDD mysql (de la misma BBDD u otras) tan sólo creando una instancia nueva del objeto principal .. Eso a base de "funciones própias" no puedes re-usarlas salvo que gestiones "links" de conexión diferentes y crees funciones con nombres diferentes (sobre todo la que conecte a tu BD y se autentifique) .. En fin .. un trabajo "laborioso" y a un paso de usar realmente POO .. lo cual ya lo haría "por defecto".

Ejemplo .. imagina un traspaso de datos entre un servidor Mysql A y B:

Código PHP:
$obj=new conectarMySQL("SERVIDOR","USUARIO","PASSWORD","BASE DE DATOS"); 
$obj2=new conectarMySQL("SERVIDOR2","USUARIO","PASSWORD","BASE DE DATOS"); 

$obj->conectar(); 
$obj2->conectar();

$obj->consultar("select * from urls limit 0,10"); 
while(
$row=$obj->obtendatos()) { 
    echo 
"Pasando: Mysql A:".$row['url']."> Mysql B"
    
$obj2->consultar("INSERT INTO tabla (id,campo) ('','".$row['url']."')";
    
$obj2->limpiaconsulta();

$obj->limpiaconsulta(); 
$obj->cerrarconexion(); 
$obj2->cerrarconexion(); 
Como bien dices .. tal vez este ejemplo concreto para una capa de abstracción no sea el mejor ejemplo para describir las "virtudes" de usar POO para acceder a una BBDD .. pero te paso otro ejemplo en el que creo que veras mejor el por qué usar POO:

AdoDB
http://adodb.sourceforge.net/

Esta classe tiene métodos para que "eligas" con que BBDD vas a trabajar .. no sólo "Mysql" sino vaías más. Tu usas el mismo nombre de métodos, la misma forma de trabajar sea cual sea el motor de BBDD que te conectes. De hecho, eso se usa para hacer aplicaciones que puedan funcionar sin cambios de código bajo el rango de RDBMS's que la capa de abastracción gestione.

El hecho de tener centralizado todo sobre un objeto hace que por ejemplo puedas crear otros objetos que extiendan al padre para añadirle funcionalidades nuevas sin tener que re-escribir nada más de código ni afectar al que ya esté creado y usandose, además de heredar todoooo lo que el objeto padre definió en su momento.

Otra variante .. no usa métodos para seleccionar la BD sino que cambia la "classe" entera a usar. Sólo se basa en respetar el nombre de los métodos y lo que entregan o aceptan cuando se crea un nuevo módulo para acceso a un RDBMS diferente.

ezSQL
http://www.jvmultimedia.com/home/art...hp?articleId=2

Un saludo,

Última edición por Cluster; 10/01/2006 a las 08:42